From 43ef0da0fb308c937dd0261d5204bd72e8b6867a Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Fri, 1 Dec 2023 09:56:32 -0500 Subject: [PATCH] Add assertions for shape cache grandchild nodes --- shape.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/shape.c b/shape.c index 9c6ccffbb25a37..3311d4d68133a4 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 {