Index: Source/platform/heap/HeapTest.cpp |
diff --git a/Source/platform/heap/HeapTest.cpp b/Source/platform/heap/HeapTest.cpp |
index 09443de1873a22364d2c2eb2007a277bf7a06c3d..814e3a4a158b7b0d3d77d036d633a2cf2322870e 100644 |
--- a/Source/platform/heap/HeapTest.cpp |
+++ b/Source/platform/heap/HeapTest.cpp |
@@ -1853,6 +1853,15 @@ TEST(HeapTest, LargeObjects) |
{ |
int slack = 8; // LargeObject points to an IntWrapper that is also allocated. |
Persistent<LargeObject> object = LargeObject::create(); |
+ EXPECT_TRUE(ThreadState::current()->contains(object)); |
+ EXPECT_TRUE(ThreadState::current()->contains(reinterpret_cast<char*>(object.get()) + sizeof(LargeObject) - 1)); |
+#if ENABLE(GC_TRACING) |
+ const GCInfo* info = ThreadState::current()->findGCInfo(reinterpret_cast<Address>(object.get())); |
+ EXPECT_NE(reinterpret_cast<const GCInfo*>(0), info); |
+ EXPECT_EQ(info, ThreadState::current()->findGCInfo(reinterpret_cast<Address>(object.get()) + sizeof(LargeObject) - 1)); |
+ EXPECT_NE(info, ThreadState::current()->findGCInfo(reinterpret_cast<Address>(object.get()) + sizeof(LargeObject))); |
+ EXPECT_NE(info, ThreadState::current()->findGCInfo(reinterpret_cast<Address>(object.get()) - 1)); |
+#endif |
HeapStats afterAllocation; |
clearOutOldGarbage(&afterAllocation); |
{ |