Index: src/ic-inl.h |
diff --git a/src/ic-inl.h b/src/ic-inl.h |
index 7467881f6e4150819ebf64c1776212bd6ed3d507..6a86921a415759c40ee0eaf60ed882b62c1981be 100644 |
--- a/src/ic-inl.h |
+++ b/src/ic-inl.h |
@@ -79,10 +79,10 @@ Code* IC::GetTargetAtAddress(Address address) { |
void IC::SetTargetAtAddress(Address address, Code* target) { |
ASSERT(target->is_inline_cache_stub() || target->is_compare_ic_stub()); |
+ Code* old_target = GetTargetAtAddress(address); |
#ifdef DEBUG |
// STORE_IC and KEYED_STORE_IC use Code::extra_ic_state() to mark |
// ICs as strict mode. The strict-ness of the IC must be preserved. |
- Code* old_target = GetTargetAtAddress(address); |
if (old_target->kind() == Code::STORE_IC || |
old_target->kind() == Code::KEYED_STORE_IC) { |
ASSERT(Code::GetStrictMode(old_target->extra_ic_state()) == |
@@ -92,7 +92,7 @@ void IC::SetTargetAtAddress(Address address, Code* target) { |
Assembler::set_target_address_at(address, target->instruction_start()); |
target->GetHeap()->incremental_marking()->RecordCodeTargetPatch(address, |
target); |
- PostPatching(); |
+ PostPatching(address, target, old_target); |
} |