summaryrefslogtreecommitdiff
path: root/yjit_core.c
diff options
context:
space:
mode:
Diffstat (limited to 'yjit_core.c')
-rw-r--r--yjit_core.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/yjit_core.c b/yjit_core.c
index 140d0dc64a..eae43c38f7 100644
--- a/yjit_core.c
+++ b/yjit_core.c
@@ -888,7 +888,11 @@ invalidate_block_version(block_t* block)
{
branch_t* branch = rb_darray_get(block->incoming, incoming_idx);
uint32_t target_idx = (branch->dst_addrs[0] == code_ptr)? 0:1;
- RUBY_ASSERT(!branch->blocks[target_idx] || branch->blocks[target_idx] == block);
+ RUBY_ASSERT(branch->dst_addrs[target_idx] == code_ptr);
+ RUBY_ASSERT(branch->blocks[target_idx] == block);
+
+ // Mark this target as being a stub
+ branch->blocks[target_idx] = NULL;
// Create a stub for this branch target
branch->dst_addrs[target_idx] = get_branch_target(
@@ -898,9 +902,6 @@ invalidate_block_version(block_t* block)
target_idx
);
- // Mark this target as being a stub
- branch->blocks[target_idx] = NULL;
-
// Check if the invalidated block immediately follows
bool target_next = block->start_pos == branch->end_pos;