| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index aa8dff9eaa70a1ddd7a9098b187e2f710f3c7f02..fef74442c3da4a6b93cd0028868e6a4a51c4bdcf 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -11102,28 +11102,21 @@
|
| DCHECK(new_code_map->get(i + kOsrAstIdOffset)->IsSmi());
|
| }
|
| #endif
|
| -
|
| - if (Heap::ShouldZapGarbage()) {
|
| - // Zap any old optimized code map for heap-verifier.
|
| - if (!shared->optimized_code_map()->IsSmi()) {
|
| - FixedArray* old_code_map = FixedArray::cast(shared->optimized_code_map());
|
| - old_code_map->FillWithHoles(0, old_code_map->length());
|
| - }
|
| - }
|
| -
|
| shared->set_optimized_code_map(*new_code_map);
|
| }
|
|
|
|
|
| void SharedFunctionInfo::ClearOptimizedCodeMap() {
|
| - if (Heap::ShouldZapGarbage()) {
|
| - // Zap any old optimized code map for heap-verifier.
|
| - if (!optimized_code_map()->IsSmi()) {
|
| - FixedArray* old_code_map = FixedArray::cast(optimized_code_map());
|
| - old_code_map->FillWithHoles(0, old_code_map->length());
|
| - }
|
| - }
|
| -
|
| + FixedArray* code_map = FixedArray::cast(optimized_code_map());
|
| +
|
| + // If the next map link slot is already used then the function was
|
| + // enqueued with code flushing and we remove it now.
|
| + if (!code_map->get(kNextMapIndex)->IsUndefined()) {
|
| + CodeFlusher* flusher = GetHeap()->mark_compact_collector()->code_flusher();
|
| + flusher->EvictOptimizedCodeMap(this);
|
| + }
|
| +
|
| + DCHECK(code_map->get(kNextMapIndex)->IsUndefined());
|
| set_optimized_code_map(Smi::FromInt(0));
|
| }
|
|
|
|
|