aboutsummaryrefslogtreecommitdiffstats
path: root/shape.c
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2023-12-01 09:56:32 -0500
committerPeter Zhu <peter@peterzhu.ca>2023-12-01 09:56:32 -0500
commit43ef0da0fb308c937dd0261d5204bd72e8b6867a (patch)
tree0e3ca9ab52f53e9530a8d96433f17804565a1207 /shape.c
parent64c4bbb86cf5c2a7710bef4d481c6a05f780c632 (diff)
downloadruby-43ef0da0fb308c937dd0261d5204bd72e8b6867a.tar.gz
Add assertions for shape cache grandchild nodes
Diffstat (limited to 'shape.c')
-rw-r--r--shape.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/shape.c b/shape.c
index 9c6ccffbb2..3311d4d681 100644
--- a/shape.c
+++ b/shape.c
@@ -180,7 +180,9 @@ redblack_balance(char color, ID key, rb_shape_t * value, redblack_node_t * left,
RUBY_ASSERT(new_right_key > new_key);
RUBY_ASSERT(new_left_left == LEAF || new_left_left->key < new_left_key);
RUBY_ASSERT(new_left_right == LEAF || new_left_right->key > new_left_key);
+ RUBY_ASSERT(new_left_right == LEAF || new_left_right->key < new_key);
RUBY_ASSERT(new_right_left == LEAF || new_right_left->key < new_right_key);
+ RUBY_ASSERT(new_right_left == LEAF || new_right_left->key > new_key);
RUBY_ASSERT(new_right_right == LEAF || new_right_right->key > new_right_key);
}
else if (redblack_red_p(left) && redblack_red_p(redblack_right(left))) {
@@ -202,7 +204,9 @@ redblack_balance(char color, ID key, rb_shape_t * value, redblack_node_t * left,
RUBY_ASSERT(new_right_key > new_key);
RUBY_ASSERT(new_left_left == LEAF || new_left_left->key < new_left_key);
RUBY_ASSERT(new_left_right == LEAF || new_left_right->key > new_left_key);
+ RUBY_ASSERT(new_left_right == LEAF || new_left_right->key < new_key);
RUBY_ASSERT(new_right_left == LEAF || new_right_left->key < new_right_key);
+ RUBY_ASSERT(new_right_left == LEAF || new_right_left->key > new_key);
RUBY_ASSERT(new_right_right == LEAF || new_right_right->key > new_right_key);
}
else if (redblack_red_p(right) && redblack_red_p(redblack_left(right))) {
@@ -224,7 +228,9 @@ redblack_balance(char color, ID key, rb_shape_t * value, redblack_node_t * left,
RUBY_ASSERT(new_right_key > new_key);
RUBY_ASSERT(new_left_left == LEAF || new_left_left->key < new_left_key);
RUBY_ASSERT(new_left_right == LEAF || new_left_right->key > new_left_key);
+ RUBY_ASSERT(new_left_right == LEAF || new_left_right->key < new_key);
RUBY_ASSERT(new_right_left == LEAF || new_right_left->key < new_right_key);
+ RUBY_ASSERT(new_right_left == LEAF || new_right_left->key > new_key);
RUBY_ASSERT(new_right_right == LEAF || new_right_right->key > new_right_key);
}
else if (redblack_red_p(right) && redblack_red_p(redblack_right(right))) {
@@ -246,7 +252,9 @@ redblack_balance(char color, ID key, rb_shape_t * value, redblack_node_t * left,
RUBY_ASSERT(new_right_key > new_key);
RUBY_ASSERT(new_left_left == LEAF || new_left_left->key < new_left_key);
RUBY_ASSERT(new_left_right == LEAF || new_left_right->key > new_left_key);
+ RUBY_ASSERT(new_left_right == LEAF || new_left_right->key < new_key);
RUBY_ASSERT(new_right_left == LEAF || new_right_left->key < new_right_key);
+ RUBY_ASSERT(new_right_left == LEAF || new_right_left->key > new_key);
RUBY_ASSERT(new_right_right == LEAF || new_right_right->key > new_right_key);
}
else {