summaryrefslogtreecommitdiff
path: root/shape.c
diff options
context:
space:
mode:
authorPeter Zhu <[email protected]>2023-11-29 10:30:00 -0500
committerPeter Zhu <[email protected]>2023-11-29 10:30:00 -0500
commit57cb47bfe2df3fc4300b39875c40a7fe0879effb ()
tree5200c3aec99a4e7fe01133ec46196634518b8d6b /shape.c
parentb632732bcf901360560555fea3d9d88811252f0d (diff)
Assert that the left and right nodes are correct
-rw-r--r--shape.c9
1 files changed, 9 insertions, 0 deletions
@@ -81,6 +81,9 @@ redblack_find(redblack_node_t * tree, ID key)
return LEAF;
}
else {
if (tree->key == key) {
return tree;
}
@@ -136,6 +139,10 @@ redblack_new(char color, ID key, rb_shape_t * value, redblack_node_t * left, red
// We're out of cache, just quit
return LEAF;
}
redblack_node_t * redblack_nodes = GET_SHAPE_TREE()->shape_cache;
redblack_node_t * node = &redblack_nodes[(GET_SHAPE_TREE()->cache_size)++];
node->key = key;
@@ -234,9 +241,11 @@ redblack_insert_aux(redblack_node_t * tree, ID key, rb_shape_t * value)
left = redblack_insert_aux(redblack_left(tree), key, value);
RUBY_ASSERT(left != LEAF);
right = redblack_right(tree);
}
else if (key > tree->key) {
left = redblack_left(tree);
right = redblack_insert_aux(redblack_right(tree), key, value);
RUBY_ASSERT(right != LEAF);
}