Index: Source/heap/Heap.cpp |
diff --git a/Source/heap/Heap.cpp b/Source/heap/Heap.cpp |
index ab5f64e56b0483b29218bb59dafc3e710726a3a0..fc72e31561ac399e8a6dae596f0166ad3570e969 100644 |
--- a/Source/heap/Heap.cpp |
+++ b/Source/heap/Heap.cpp |
@@ -1179,9 +1179,9 @@ public: |
visitHeader(header, header->payload(), callback); |
} |
- virtual void registerWeakMembers(const void* containingObject, WeakPointerCallback callback) OVERRIDE |
+ virtual void registerWeakMembers(const void* closure, const void* containingObject, WeakPointerCallback callback) OVERRIDE |
{ |
- Heap::pushWeakObjectPointerCallback(const_cast<void*>(containingObject), callback); |
+ Heap::pushWeakObjectPointerCallback(const_cast<void*>(closure), const_cast<void*>(containingObject), callback); |
} |
virtual bool isMarked(const void* objectPointer) OVERRIDE |
@@ -1274,13 +1274,13 @@ void Heap::pushWeakCellPointerCallback(void** cell, WeakPointerCallback callback |
*slot = CallbackStack::Item(cell, callback); |
} |
-void Heap::pushWeakObjectPointerCallback(void* object, WeakPointerCallback callback) |
+void Heap::pushWeakObjectPointerCallback(void* closure, void* object, WeakPointerCallback callback) |
{ |
ASSERT(Heap::contains(object)); |
BaseHeapPage* heapPageForObject = reinterpret_cast<BaseHeapPage*>(pageHeaderAddress(reinterpret_cast<Address>(object))); |
ASSERT(Heap::contains(object) == heapPageForObject); |
ThreadState* state = heapPageForObject->threadState(); |
- state->pushWeakObjectPointerCallback(object, callback); |
+ state->pushWeakObjectPointerCallback(closure, callback); |
} |
bool Heap::popAndInvokeWeakPointerCallback(Visitor* visitor) |