| Index: Source/platform/heap/MarkingVisitorImpl.h
|
| diff --git a/Source/platform/heap/MarkingVisitorImpl.h b/Source/platform/heap/MarkingVisitorImpl.h
|
| index 27c8964e1f03c987231b0d8aa3313476146b6479..3265caa2dacdc26c2eca8e02514691e19e8e94a6 100644
|
| --- a/Source/platform/heap/MarkingVisitorImpl.h
|
| +++ b/Source/platform/heap/MarkingVisitorImpl.h
|
| @@ -70,6 +70,9 @@ protected:
|
| inline void registerWeakMembers(const void* closure, const void* objectPointer, WeakCallback callback)
|
| {
|
| ASSERT(toDerived()->markingMode() != Visitor::WeakProcessing);
|
| + // We don't want to run weak processings when taking a snapshot.
|
| + if (toDerived()->markingMode() == Visitor::SnapshotMarking)
|
| + return;
|
| Heap::pushThreadLocalWeakCallback(const_cast<void*>(closure), const_cast<void*>(objectPointer), callback);
|
| }
|
|
|
| @@ -117,6 +120,9 @@ protected:
|
| inline void registerWeakCellWithCallback(void** cell, WeakCallback callback)
|
| {
|
| ASSERT(toDerived()->markingMode() != Visitor::WeakProcessing);
|
| + // We don't want to run weak processings when taking a snapshot.
|
| + if (toDerived()->markingMode() == Visitor::SnapshotMarking)
|
| + return;
|
| Heap::pushGlobalWeakCallback(cell, callback);
|
| }
|
|
|
|
|