Index: src/deoptimizer.cc |
diff --git a/src/deoptimizer.cc b/src/deoptimizer.cc |
index 21ffe07b64d477dbb71918e9fe6ce22e33087733..9f7bbec0d9ea619fb65c8751a3a78f3af6c8ab47 100644 |
--- a/src/deoptimizer.cc |
+++ b/src/deoptimizer.cc |
@@ -1812,6 +1812,7 @@ void Deoptimizer::PatchStackCheckCode(Code* unoptimized_code, |
// Iterate over the stack check table and patch every stack check |
// call to an unconditional call to the replacement code. |
ASSERT(unoptimized_code->kind() == Code::FUNCTION); |
+ ASSERT(!unoptimized_code->stack_check_patched_for_osr()); |
Address stack_check_cursor = unoptimized_code->instruction_start() + |
unoptimized_code->stack_check_table_offset(); |
uint32_t table_length = Memory::uint32_at(stack_check_cursor); |
@@ -1825,6 +1826,7 @@ void Deoptimizer::PatchStackCheckCode(Code* unoptimized_code, |
replacement_code); |
stack_check_cursor += 2 * kIntSize; |
} |
+ unoptimized_code->set_stack_check_patched_for_osr(true); |
} |
@@ -1834,6 +1836,7 @@ void Deoptimizer::RevertStackCheckCode(Code* unoptimized_code, |
// Iterate over the stack check table and revert the patched |
// stack check calls. |
ASSERT(unoptimized_code->kind() == Code::FUNCTION); |
+ ASSERT(unoptimized_code->stack_check_patched_for_osr()); |
Address stack_check_cursor = unoptimized_code->instruction_start() + |
unoptimized_code->stack_check_table_offset(); |
uint32_t table_length = Memory::uint32_at(stack_check_cursor); |
@@ -1847,6 +1850,7 @@ void Deoptimizer::RevertStackCheckCode(Code* unoptimized_code, |
replacement_code); |
stack_check_cursor += 2 * kIntSize; |
} |
+ unoptimized_code->set_stack_check_patched_for_osr(false); |
} |