From 1f7d0f3acc37d8644dc3dc988ed15db5708083bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Gr=C3=A9goire?= Date: Sun, 5 Apr 2026 23:04:27 -0400 Subject: [PATCH] fix(rtl): don't use init_nil() --- src/kern/init.zig | 2 -- src/rtl/bst.zig | 18 ++++-------------- src/rtl/rbtree.zig | 1 - src/rtl/root.zig | 4 ---- 4 files changed, 4 insertions(+), 21 deletions(-) diff --git a/src/kern/init.zig b/src/kern/init.zig index 7ec5a4c..7106692 100644 --- a/src/kern/init.zig +++ b/src/kern/init.zig @@ -1,5 +1,4 @@ const std = @import("std"); -const rtl = @import("rtl"); const b = @import("base"); const pl = b.pl; const ke = b.ke; @@ -11,7 +10,6 @@ var thread0: ke.Thread = undefined; var stack: [8192]u8 align(16) = undefined; pub fn init(boot_info: *pl.BootInfo) linksection(b.init) void { - rtl.init(); std.log.info("hello, world", .{}); ki.impl.early_init(); pl.early_init(boot_info); diff --git a/src/rtl/bst.zig b/src/rtl/bst.zig index 68cb5f6..f4a6d95 100644 --- a/src/rtl/bst.zig +++ b/src/rtl/bst.zig @@ -7,20 +7,12 @@ pub const Node = struct { parent: TaggedPtr(Node), }; -pub var nil = Node{ - .left = undefined, - .right = undefined, - .parent = undefined, +pub var nil: Node = .{ + .left = &nil, + .right = &nil, + .parent = .{ .value = 0 }, }; -/// Initialize the sentinel nil node. This should be called before using any BSTs. -pub fn init_nil() void { - nil.left = &nil; - nil.right = &nil; - nil.parent.set_ptr(&nil); - nil.parent.set_tag(0); -} - /// Base struct for binary search trees. /// This should be used as a field in other types that are based on binary search trees, such as red-black trees or AVL trees. pub fn BST(comptime cmp: fn (*Node, *Node) std.math.Order) type { @@ -170,8 +162,6 @@ fn node_cmp(a: *Node, b: *Node) std.math.Order { } test BST { - init_nil(); - var tree: BST(node_cmp) = .init(); var nodes = [_]MyNode{ diff --git a/src/rtl/rbtree.zig b/src/rtl/rbtree.zig index 76d6552..0fca3f6 100644 --- a/src/rtl/rbtree.zig +++ b/src/rtl/rbtree.zig @@ -307,7 +307,6 @@ fn check_invariants(tree: *RBTree(cmp_test_node)) !void { } fn make_tree() RBTree(cmp_test_node) { - bst.init_nil(); return .init(); } diff --git a/src/rtl/root.zig b/src/rtl/root.zig index bd430f7..0a2b0b7 100644 --- a/src/rtl/root.zig +++ b/src/rtl/root.zig @@ -11,10 +11,6 @@ pub const bst = @import("bst.zig"); pub const BST = bst.BST; pub const RBTree = @import("rbtree.zig").RBTree; -pub fn init() void { - bst.init_nil(); -} - test { std.testing.refAllDecls(@This()); }