Chromium Code Reviews| Index: src/mark-compact.cc |
| diff --git a/src/mark-compact.cc b/src/mark-compact.cc |
| index 87e4bf9f04fedb3ad25a7859bd9a4e29a3179da1..2c59c886deb7d41bb7bcbb7398092d08f7bb6bb7 100644 |
| --- a/src/mark-compact.cc |
| +++ b/src/mark-compact.cc |
| @@ -1,4 +1,4 @@ |
| -// Copyright 2011 the V8 project authors. All rights reserved. |
| +// Copyright 2012 the V8 project authors. All rights reserved. |
| // Redistribution and use in source and binary forms, with or without |
| // modification, are permitted provided that the following conditions are |
| // met: |
| @@ -881,7 +881,9 @@ class StaticMarkingVisitor : public StaticVisitorBase { |
| static inline void VisitCodeTarget(Heap* heap, RelocInfo* rinfo) { |
| ASSERT(RelocInfo::IsCodeTarget(rinfo->rmode())); |
| Code* target = Code::GetCodeFromTargetAddress(rinfo->target_address()); |
| - if (FLAG_cleanup_code_caches_at_gc && target->is_inline_cache_stub()) { |
| + if (FLAG_cleanup_code_caches_at_gc && target->is_inline_cache_stub() |
| + && (target->ic_state() == MEGAMORPHIC || Serializer::enabled() || |
|
Vyacheslav Egorov (Chromium)
2012/01/18 14:09:21
store (Serializer::enabled() || heap->isolate()->s
Jakob Kummerow
2012/01/18 15:02:40
Done.
|
| + heap->isolate()->context_exit_happened())) { |
| IC::Clear(rinfo->pc()); |
| target = Code::GetCodeFromTargetAddress(rinfo->target_address()); |
| } else { |
| @@ -2180,6 +2182,8 @@ void MarkCompactCollector::AfterMarking() { |
| // Clean up dead objects from the runtime profiler. |
| heap()->isolate()->runtime_profiler()->RemoveDeadSamples(); |
| + |
| + heap()->isolate()->set_context_exit_happened(false); |
| } |