Commit 95f4c1532a

Ryan Liptak <squeek502@hotmail.com>
2023-10-03 08:07:28
Treap: do not set key to undefined in `remove` to allow re-use of removed nodes
1 parent cf3572a
Changed files (2)
lib/std/heap/general_purpose_allocator.zig
@@ -913,8 +913,6 @@ pub fn GeneralPurposeAllocator(comptime config: Config) type {
                 // save the node for destruction/insertion into in empty_buckets
                 var node = entry.node.?;
                 entry.set(null);
-                // restore the node's key since Treap.remove sets it to undefined
-                node.key = bucket;
                 if (self.cur_buckets[bucket_index] == bucket) {
                     self.cur_buckets[bucket_index] = null;
                 }
lib/std/treap.zig
@@ -225,7 +225,6 @@ pub fn Treap(comptime Key: type, comptime compareFn: anytype) type {
             link.* = null;
 
             // clean up after ourselves
-            node.key = undefined;
             node.priority = 0;
             node.parent = null;
             node.children = [_]?*Node{ null, null };