summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--misc/gen_call_test.rb47
-rw-r--r--ujit_core.c10
2 files changed, 5 insertions, 52 deletions
diff --git a/misc/gen_call_test.rb b/misc/gen_call_test.rb
deleted file mode 100644
index 206beda22e..0000000000
--- a/misc/gen_call_test.rb
+++ /dev/null
@@ -1,47 +0,0 @@
-NUM_LEVELS = 30
-FNS_PER_LEVEL = 1000
-
-$out = ""
-
-def addln(str = "")
- $out << str << "\n"
-end
-
-NUM_LEVELS.times do |l_no|
- FNS_PER_LEVEL.times do |f_no|
- f_name = "fun_l#{l_no}_n#{f_no}"
-
- if l_no < NUM_LEVELS - 1
- callee_no = rand(0...FNS_PER_LEVEL)
- callee_name = "fun_l#{l_no+1}_n#{callee_no}"
- else
- callee_name = "inc"
- end
-
- addln("def #{f_name}()")
- addln(" #{callee_name}")
- addln("end")
- addln()
- end
-end
-
-addln("@a = 0")
-addln("@b = 0")
-addln("@c = 0")
-addln("@d = 0")
-addln("@count = 0")
-addln("def inc()")
-addln(" @count += 1")
-addln("end")
-
-# 100K times
-addln("100000.times do")
- FNS_PER_LEVEL.times do |f_no|
- f_name = "fun_l0_n#{f_no}"
- addln(" #{f_name}")
- end
-addln("end")
-
-addln("puts @count")
-
-puts($out) \ No newline at end of file
diff --git a/ujit_core.c b/ujit_core.c
index 63a482aefe..1ed8c47a99 100644
--- a/ujit_core.c
+++ b/ujit_core.c
@@ -647,15 +647,15 @@ invalidate_block_version(block_t* block)
void* handler_addr = (void*)handler_table[entry_opcode];
iseq->body->iseq_encoded[idx] = (VALUE)handler_addr;
- //
- // Optional: may want to recompile a new deoptimized entry point
- //
-
// TODO:
+ // May want to recompile a new entry point (for interpreter entry blocks)
+ // This isn't necessary for correctness
+
+ // FIXME:
// Call continuation addresses on the stack can also be atomically replaced by jumps going to the stub.
- // For now this isn't an issue
// Free the old block version object
+ free(block->incoming);
free(block);
fprintf(stderr, "invalidation done\n");