Chromium Code Reviews| 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
|
| } |