Index: test/cctest/test-mark-compact.cc |
diff --git a/test/cctest/test-mark-compact.cc b/test/cctest/test-mark-compact.cc |
index a46343271a4c99de6b2cfd5f5efb083a4a80d5b3..1d8a0708f5cd87d48b2755ae6a04c5ed3f8c7d79 100644 |
--- a/test/cctest/test-mark-compact.cc |
+++ b/test/cctest/test-mark-compact.cc |
@@ -35,6 +35,7 @@ |
#include <errno.h> |
#endif |
+#include <utility> |
#include "v8.h" |
@@ -245,12 +246,14 @@ TEST(MapCompact) { |
static int NumberOfWeakCalls = 0; |
-static void WeakPointerCallback(v8::Isolate* isolate, |
- v8::Persistent<v8::Value>* handle, |
- void* id) { |
- ASSERT(id == reinterpret_cast<void*>(1234)); |
+static void WeakPointerCallback( |
+ const v8::WeakCallbackData<v8::Value, void>& data) { |
+ std::pair<v8::Persistent<v8::Value>*, int>* p = |
+ reinterpret_cast<std::pair<v8::Persistent<v8::Value>*, int>*>( |
+ data.GetParameter()); |
+ ASSERT_EQ(1234, p->second); |
NumberOfWeakCalls++; |
- handle->Reset(); |
+ p->first->Reset(); |
} |
@@ -268,15 +271,18 @@ TEST(ObjectGroups) { |
global_handles->Create(heap->AllocateFixedArray(1)->ToObjectChecked()); |
Handle<Object> g1c1 = |
global_handles->Create(heap->AllocateFixedArray(1)->ToObjectChecked()); |
- global_handles->MakeWeak(g1s1.location(), |
- reinterpret_cast<void*>(1234), |
- &WeakPointerCallback); |
- global_handles->MakeWeak(g1s2.location(), |
- reinterpret_cast<void*>(1234), |
- &WeakPointerCallback); |
- global_handles->MakeWeak(g1c1.location(), |
- reinterpret_cast<void*>(1234), |
- &WeakPointerCallback); |
+ std::pair<Handle<Object>*, int> g1s1_and_id(&g1s1, 1234); |
+ GlobalHandles::MakeWeak(g1s1.location(), |
+ reinterpret_cast<void*>(&g1s1_and_id), |
+ &WeakPointerCallback); |
+ std::pair<Handle<Object>*, int> g1s2_and_id(&g1s2, 1234); |
+ GlobalHandles::MakeWeak(g1s2.location(), |
+ reinterpret_cast<void*>(&g1s2_and_id), |
+ &WeakPointerCallback); |
+ std::pair<Handle<Object>*, int> g1c1_and_id(&g1c1, 1234); |
+ GlobalHandles::MakeWeak(g1c1.location(), |
+ reinterpret_cast<void*>(&g1c1_and_id), |
+ &WeakPointerCallback); |
Handle<Object> g2s1 = |
global_handles->Create(heap->AllocateFixedArray(1)->ToObjectChecked()); |
@@ -284,15 +290,18 @@ TEST(ObjectGroups) { |
global_handles->Create(heap->AllocateFixedArray(1)->ToObjectChecked()); |
Handle<Object> g2c1 = |
global_handles->Create(heap->AllocateFixedArray(1)->ToObjectChecked()); |
- global_handles->MakeWeak(g2s1.location(), |
- reinterpret_cast<void*>(1234), |
- &WeakPointerCallback); |
- global_handles->MakeWeak(g2s2.location(), |
- reinterpret_cast<void*>(1234), |
- &WeakPointerCallback); |
- global_handles->MakeWeak(g2c1.location(), |
- reinterpret_cast<void*>(1234), |
- &WeakPointerCallback); |
+ std::pair<Handle<Object>*, int> g2s1_and_id(&g2s1, 1234); |
+ GlobalHandles::MakeWeak(g2s1.location(), |
+ reinterpret_cast<void*>(&g2s1_and_id), |
+ &WeakPointerCallback); |
+ std::pair<Handle<Object>*, int> g2s2_and_id(&g2s2, 1234); |
+ GlobalHandles::MakeWeak(g2s2.location(), |
+ reinterpret_cast<void*>(&g2s2_and_id), |
+ &WeakPointerCallback); |
+ std::pair<Handle<Object>*, int> g2c1_and_id(&g2c1, 1234); |
+ GlobalHandles::MakeWeak(g2c1.location(), |
+ reinterpret_cast<void*>(&g2c1_and_id), |
+ &WeakPointerCallback); |
Handle<Object> root = global_handles->Create(*g1s1); // make a root. |
@@ -319,9 +328,10 @@ TEST(ObjectGroups) { |
CHECK_EQ(0, NumberOfWeakCalls); |
// Weaken the root. |
- global_handles->MakeWeak(root.location(), |
- reinterpret_cast<void*>(1234), |
- &WeakPointerCallback); |
+ std::pair<Handle<Object>*, int> root_and_id(&root, 1234); |
+ GlobalHandles::MakeWeak(root.location(), |
+ reinterpret_cast<void*>(&root_and_id), |
+ &WeakPointerCallback); |
// But make children strong roots---all the objects (except for children) |
// should be collectable now. |
global_handles->ClearWeakness(g1c1.location()); |
@@ -347,12 +357,12 @@ TEST(ObjectGroups) { |
CHECK_EQ(5, NumberOfWeakCalls); |
// And now make children weak again and collect them. |
- global_handles->MakeWeak(g1c1.location(), |
- reinterpret_cast<void*>(1234), |
- &WeakPointerCallback); |
- global_handles->MakeWeak(g2c1.location(), |
- reinterpret_cast<void*>(1234), |
- &WeakPointerCallback); |
+ GlobalHandles::MakeWeak(g1c1.location(), |
+ reinterpret_cast<void*>(&g1c1_and_id), |
+ &WeakPointerCallback); |
+ GlobalHandles::MakeWeak(g2c1.location(), |
+ reinterpret_cast<void*>(&g2c1_and_id), |
+ &WeakPointerCallback); |
heap->CollectGarbage(OLD_POINTER_SPACE); |
CHECK_EQ(7, NumberOfWeakCalls); |