Index: src/ia32/deoptimizer-ia32.cc |
diff --git a/src/ia32/deoptimizer-ia32.cc b/src/ia32/deoptimizer-ia32.cc |
index 6718b8f85c40dbc3485e30cc45ccdc61c22732d6..d1d9254094863430d4c4678989211de5fd2702f5 100644 |
--- a/src/ia32/deoptimizer-ia32.cc |
+++ b/src/ia32/deoptimizer-ia32.cc |
@@ -123,14 +123,13 @@ void Deoptimizer::DeoptimizeFunctionWithPreparedFunctionList( |
ASSERT(function->IsOptimized()); |
ASSERT(function->FunctionsInFunctionListShareSameCode()); |
- // The optimized code is going to be patched, so we cannot use it |
- // any more. Play safe and reset the whole cache. |
- function->shared()->ClearOptimizedCodeMap("deoptimized function"); |
- |
// Get the optimized code. |
Code* code = function->code(); |
Address code_start_address = code->instruction_start(); |
+ // The optimized code is going to be patched, so we cannot use it any more. |
+ function->shared()->EvictFromOptimizedCodeMap(code, "deoptimized function"); |
+ |
// We will overwrite the code's relocation info in-place. Relocation info |
// is written backward. The relocation info is the payload of a byte |
// array. Later on we will slide this to the start of the byte array and |