Index: src/debug.cc |
=================================================================== |
--- src/debug.cc (revision 2143) |
+++ src/debug.cc (working copy) |
@@ -382,6 +382,7 @@ |
// the code copy and will therefore have no effect on the running code |
// keeping it from using the inlined code. |
if (code->is_keyed_load_stub()) KeyedLoadIC::ClearInlinedVersion(pc()); |
+ if (code->is_keyed_store_stub()) KeyedStoreIC::ClearInlinedVersion(pc()); |
} |
} |
@@ -389,6 +390,16 @@ |
void BreakLocationIterator::ClearDebugBreakAtIC() { |
// Patch the code to the original invoke. |
rinfo()->set_target_address(original_rinfo()->target_address()); |
+ |
+ RelocInfo::Mode mode = rmode(); |
+ if (RelocInfo::IsCodeTarget(mode)) { |
+ Address target = original_rinfo()->target_address(); |
+ Handle<Code> code(Code::GetCodeFromTargetAddress(target)); |
+ |
+ // Restore the inlined version of keyed stores to get back to the |
+ // fast case. |
+ if (code->is_keyed_store_stub()) KeyedStoreIC::RestoreInlinedVersion(pc()); |
+ } |
Søren Thygesen Gjesse
2009/06/12 11:15:29
Maybe add a comment saying why this is not require
|
} |