Diff
Modified: trunk/Source/WTF/ChangeLog (144526 => 144527)
--- trunk/Source/WTF/ChangeLog 2013-03-02 05:18:43 UTC (rev 144526)
+++ trunk/Source/WTF/ChangeLog 2013-03-02 05:23:18 UTC (rev 144527)
@@ -1,3 +1,22 @@
+2013-03-01 Ilya Tikhonovsky <[email protected]>
+
+ Web Inspector: Native Memory Instrumentation: do not visit raw pointers by default.
+ https://bugs.webkit.org/show_bug.cgi?id=110943
+
+ Reviewed by Yury Semikhatsky.
+
+ Unfortunately in many cases raw pointer may point to an object that has been deleted.
+ There is no working solution to solve this problem in general.
+ It could be solved only on case by case basis.
+
+ * wtf/MemoryInstrumentation.h:
+ (WTF::MemoryInstrumentation::addObject):
+ (WTF::MemoryInstrumentation::MemberTypeTraits::addObject):
+ (WTF::MemoryClassInfo::addMember):
+ (WTF::MemoryInstrumentation::addObjectImpl):
+ * wtf/MemoryInstrumentationString.h:
+ (WTF::reportMemoryUsage):
+
2013-03-01 Eric Seidel <[email protected]>
Threaded HTML Parser has an extra copy of every byte from the network
Modified: trunk/Source/WTF/wtf/MemoryInstrumentation.h (144526 => 144527)
--- trunk/Source/WTF/wtf/MemoryInstrumentation.h 2013-03-02 05:18:43 UTC (rev 144526)
+++ trunk/Source/WTF/wtf/MemoryInstrumentation.h 2013-03-02 05:23:18 UTC (rev 144527)
@@ -48,8 +48,7 @@
enum MemberType {
PointerMember,
ReferenceMember,
- OwnPtrMember,
- RefPtrMember,
+ RetainingPointer,
LastMemberTypeEntry
};
@@ -167,7 +166,10 @@
virtual void callReportMemoryUsage(MemoryObjectInfo*) OVERRIDE;
};
- template<typename T> void addObject(const T& t, MemoryObjectInfo* ownerObjectInfo, const char* edgeName) { MemberTypeTraits<T>::addObject(this, t, ownerObjectInfo, edgeName); }
+ template<typename T> void addObject(const T& t, MemoryObjectInfo* ownerObjectInfo, const char* edgeName, MemberType memberType)
+ {
+ MemberTypeTraits<T>::addObject(this, t, ownerObjectInfo, edgeName, memberType);
+ }
void addRawBuffer(const void* buffer, MemoryObjectType ownerObjectType, size_t size, const char* className = 0, const char* edgeName = 0)
{
if (!buffer || visited(buffer))
@@ -179,7 +181,7 @@
template<typename T>
struct MemberTypeTraits { // Default ReferenceMember implementation.
- static void addObject(MemoryInstrumentation* instrumentation, const T& t, MemoryObjectInfo* ownerObjectInfo, const char* edgeName)
+ static void addObject(MemoryInstrumentation* instrumentation, const T& t, MemoryObjectInfo* ownerObjectInfo, const char* edgeName, MemberType)
{
instrumentation->addObjectImpl(&t, ownerObjectInfo, ReferenceMember, edgeName);
}
@@ -192,9 +194,9 @@
template<typename T>
struct MemberTypeTraits<T*> { // Custom PointerMember implementation.
- static void addObject(MemoryInstrumentation* instrumentation, const T* const& t, MemoryObjectInfo* ownerObjectInfo, const char* edgeName)
+ static void addObject(MemoryInstrumentation* instrumentation, const T* const& t, MemoryObjectInfo* ownerObjectInfo, const char* edgeName, MemberType memberType)
{
- instrumentation->addObjectImpl(t, ownerObjectInfo, PointerMember, edgeName);
+ instrumentation->addObjectImpl(t, ownerObjectInfo, memberType != LastMemberTypeEntry ? memberType : PointerMember, edgeName);
}
static void addRootObject(MemoryInstrumentation* instrumentation, const T* const& t, MemoryObjectType objectType)
@@ -237,10 +239,10 @@
init(pointer, fn<T>(), objectType, actualSize);
}
- template<typename M> void addMember(const M& member, const char* edgeName = 0)
+ template<typename M> void addMember(const M& member, const char* edgeName = 0, MemberType memberType = LastMemberTypeEntry)
{
if (!m_skipMembers)
- m_memoryInstrumentation->addObject(member, m_memoryObjectInfo, edgeName);
+ m_memoryInstrumentation->addObject(member, m_memoryObjectInfo, edgeName, memberType);
}
WTF_EXPORT_PRIVATE void addRawBuffer(const void* buffer, size_t, const char* className = 0, const char* edgeName = 0);
@@ -284,6 +286,8 @@
template<typename T>
void MemoryInstrumentation::addObjectImpl(const T* object, MemoryObjectInfo* ownerObjectInfo, MemberType memberType, const char* edgeName)
{
+ if (memberType == PointerMember)
+ return;
if (memberType == ReferenceMember)
reportMemoryUsage(object, ownerObjectInfo);
else {
@@ -301,7 +305,7 @@
{
if (memberType == PointerMember && !visited(object))
countObjectSize(object, getObjectType(ownerObjectInfo), sizeof(*object));
- addObjectImpl(object->get(), ownerObjectInfo, OwnPtrMember, edgeName);
+ addObjectImpl(object->get(), ownerObjectInfo, RetainingPointer, edgeName);
}
template<typename T>
@@ -309,7 +313,7 @@
{
if (memberType == PointerMember && !visited(object))
countObjectSize(object, getObjectType(ownerObjectInfo), sizeof(*object));
- addObjectImpl(object->get(), ownerObjectInfo, RefPtrMember, edgeName);
+ addObjectImpl(object->get(), ownerObjectInfo, RetainingPointer, edgeName);
}
template<typename T>
Modified: trunk/Source/WTF/wtf/MemoryInstrumentationString.h (144526 => 144527)
--- trunk/Source/WTF/wtf/MemoryInstrumentationString.h 2013-03-02 05:18:43 UTC (rev 144526)
+++ trunk/Source/WTF/wtf/MemoryInstrumentationString.h 2013-03-02 05:23:18 UTC (rev 144527)
@@ -54,7 +54,7 @@
MemoryClassInfo info(memoryObjectInfo, stringImpl, 0, selfSize);
if (StringImpl* baseString = stringImpl->baseString())
- info.addMember(baseString, "baseString");
+ info.addMember(baseString, "baseString", RetainingPointer);
else {
if (stringImpl->hasOwnedBuffer())
info.addRawBuffer(buffer, bufferSize, "char[]", "ownedBuffer");
@@ -67,7 +67,7 @@
inline void reportMemoryUsage(const String* string, MemoryObjectInfo* memoryObjectInfo)
{
MemoryClassInfo info(memoryObjectInfo, string);
- info.addMember(string->impl(), "stringImpl");
+ info.addMember(string->impl(), "stringImpl", RetainingPointer);
}
inline void reportMemoryUsage(const AtomicString* atomicString, MemoryObjectInfo* memoryObjectInfo)
@@ -84,7 +84,7 @@
inline void reportMemoryUsage(const CString* cString, MemoryObjectInfo* memoryObjectInfo)
{
MemoryClassInfo info(memoryObjectInfo, cString);
- info.addMember(cString->buffer(), "buffer");
+ info.addMember(cString->buffer(), "buffer", RetainingPointer);
}
}
Modified: trunk/Source/WebCore/ChangeLog (144526 => 144527)
--- trunk/Source/WebCore/ChangeLog 2013-03-02 05:18:43 UTC (rev 144526)
+++ trunk/Source/WebCore/ChangeLog 2013-03-02 05:23:18 UTC (rev 144527)
@@ -1,3 +1,24 @@
+2013-03-01 Ilya Tikhonovsky <[email protected]>
+
+ Web Inspector: Native Memory Instrumentation: do not visit raw pointers by default.
+ https://bugs.webkit.org/show_bug.cgi?id=110943
+
+ Reviewed by Yury Semikhatsky.
+
+ Unfortunately in many cases raw pointer may point to an object that has been deleted.
+ There is no working solution to solve this problem in general.
+ It could be solved only on case by case basis.
+
+ * inspector/HeapGraphSerializer.cpp:
+ (WebCore::HeapGraphSerializer::HeapGraphSerializer):
+ (WebCore::HeapGraphSerializer::reportLeaf):
+ * loader/cache/MemoryCache.cpp:
+ (WebCore::MemoryCache::reportMemoryUsage):
+ * platform/graphics/BitmapImage.cpp:
+ (WebCore::FrameData::reportMemoryUsage):
+ * platform/graphics/skia/MemoryInstrumentationSkia.cpp:
+ (reportMemoryUsage):
+
2013-03-01 Kentaro Hara <[email protected]>
Style recalculation takes too long when adding whitespace text nodes
Modified: trunk/Source/WebCore/inspector/HeapGraphSerializer.cpp (144526 => 144527)
--- trunk/Source/WebCore/inspector/HeapGraphSerializer.cpp 2013-03-02 05:18:43 UTC (rev 144526)
+++ trunk/Source/WebCore/inspector/HeapGraphSerializer.cpp 2013-03-02 05:23:18 UTC (rev 144527)
@@ -59,7 +59,7 @@
memset(m_edgeTypes, 0, sizeof(m_edgeTypes));
m_edgeTypes[WTF::PointerMember] = registerTypeString("weak");
- m_edgeTypes[WTF::OwnPtrMember] = m_edgeTypes[WTF::RefPtrMember] = registerTypeString("property");
+ m_edgeTypes[WTF::RetainingPointer] = registerTypeString("property");
// FIXME: It is used as a magic constant for 'object' node type.
registerTypeString("object");
@@ -148,7 +148,7 @@
void HeapGraphSerializer::reportLeaf(const WTF::MemoryObjectInfo& info, const char* edgeName)
{
int nodeId = reportNodeImpl(info, 0);
- reportEdgeImpl(nodeId, edgeName, m_edgeTypes[WTF::OwnPtrMember]);
+ reportEdgeImpl(nodeId, edgeName, m_edgeTypes[WTF::RetainingPointer]);
pushUpdateIfNeeded();
}
Modified: trunk/Source/WebCore/loader/cache/MemoryCache.cpp (144526 => 144527)
--- trunk/Source/WebCore/loader/cache/MemoryCache.cpp 2013-03-02 05:18:43 UTC (rev 144526)
+++ trunk/Source/WebCore/loader/cache/MemoryCache.cpp 2013-03-02 05:23:18 UTC (rev 144527)
@@ -800,6 +800,10 @@
info.addMember(m_resources, "resources");
info.addMember(m_allResources, "allResources");
info.addMember(m_liveDecodedResources, "liveDecodedResources");
+#if !ENABLE(CACHE_PARTITIONING)
+ for (CachedResourceMap::const_iterator i = m_resources.begin(); i != m_resources.end(); ++i)
+ info.addMember(i->value, "cachedResourceItem", WTF::RetainingPointer);
+#endif
}
void MemoryCache::setDisabled(bool disabled)
Modified: trunk/Source/WebCore/platform/graphics/BitmapImage.cpp (144526 => 144527)
--- trunk/Source/WebCore/platform/graphics/BitmapImage.cpp 2013-03-02 05:18:43 UTC (rev 144526)
+++ trunk/Source/WebCore/platform/graphics/BitmapImage.cpp 2013-03-02 05:23:18 UTC (rev 144527)
@@ -591,7 +591,7 @@
#if OS(WINCE) && !PLATFORM(QT)
info.addRawBuffer(m_frame.get(), m_frameBytes, "NativeImage", "frame");
#elif USE(SKIA)
- info.addMember(m_frame, "frame");
+ info.addMember(m_frame, "frame", WTF::RetainingPointer);
#else
info.addRawBuffer(m_frame, m_frameBytes, "NativeImage", "frame");
#endif
Modified: trunk/Source/WebCore/platform/graphics/skia/MemoryInstrumentationSkia.cpp (144526 => 144527)
--- trunk/Source/WebCore/platform/graphics/skia/MemoryInstrumentationSkia.cpp 2013-03-02 05:18:43 UTC (rev 144526)
+++ trunk/Source/WebCore/platform/graphics/skia/MemoryInstrumentationSkia.cpp 2013-03-02 05:23:18 UTC (rev 144527)
@@ -51,11 +51,11 @@
void reportMemoryUsage(const SkDevice* const& device, WTF::MemoryObjectInfo* memoryObjectInfo)
{
WTF::MemoryClassInfo info(memoryObjectInfo, device);
- info.addMember(const_cast<SkDevice*>(device)->accessBitmap(false), "bitmap");
+ info.addMember(const_cast<SkDevice*>(device)->accessBitmap(false), "bitmap", WTF::RetainingPointer);
}
void reportMemoryUsage(const SkCanvas* const& canvas, WTF::MemoryObjectInfo* memoryObjectInfo)
{
WTF::MemoryClassInfo info(memoryObjectInfo, canvas);
- info.addMember(canvas->getDevice(), "canvas");
+ info.addMember(canvas->getDevice(), "canvas", WTF::RetainingPointer);
}
Modified: trunk/Tools/ChangeLog (144526 => 144527)
--- trunk/Tools/ChangeLog 2013-03-02 05:18:43 UTC (rev 144526)
+++ trunk/Tools/ChangeLog 2013-03-02 05:23:18 UTC (rev 144527)
@@ -1,3 +1,18 @@
+2013-03-01 Ilya Tikhonovsky <[email protected]>
+
+ Web Inspector: Native Memory Instrumentation: do not visit raw pointers by default.
+ https://bugs.webkit.org/show_bug.cgi?id=110943
+
+ Reviewed by Yury Semikhatsky.
+
+ Unfortunately in many cases raw pointer may point to an object that has been deleted.
+ There is no working solution to solve this problem in general.
+ It could be solved only on case by case basis.
+
+ * TestWebKitAPI/Tests/WTF/MemoryInstrumentationTest.cpp:
+ * TestWebKitAPI/Tests/WebCore/HeapGraphSerializerTest.cpp:
+ (TestWebKitAPI::TEST):
+
2013-03-01 Jason Anderssen <[email protected]>
Move markerTextForListItem from TestRunner to Internals
Modified: trunk/Tools/TestWebKitAPI/Tests/WTF/MemoryInstrumentationTest.cpp (144526 => 144527)
--- trunk/Tools/TestWebKitAPI/Tests/WTF/MemoryInstrumentationTest.cpp 2013-03-02 05:18:43 UTC (rev 144526)
+++ trunk/Tools/TestWebKitAPI/Tests/WTF/MemoryInstrumentationTest.cpp 2013-03-02 05:23:18 UTC (rev 144527)
@@ -89,8 +89,7 @@
{
m_links[WTF::PointerMember] = 0;
m_links[WTF::ReferenceMember] = 0;
- m_links[WTF::RefPtrMember] = 0;
- m_links[WTF::OwnPtrMember] = 0;
+ m_links[WTF::RetainingPointer] = 0;
}
virtual void countObjectSize(const void*, MemoryObjectType objectType, size_t size)
@@ -108,7 +107,7 @@
}
virtual void reportLeaf(const MemoryObjectInfo&, const char*) OVERRIDE
{
- ++m_links[WTF::OwnPtrMember];
+ ++m_links[WTF::RetainingPointer];
}
virtual void reportBaseAddress(const void*, const void*) OVERRIDE { }
virtual int registerString(const char*) OVERRIDE { return -1; }
@@ -196,7 +195,7 @@
{
MemoryClassInfo info(memoryObjectInfo, this, TestType);
memoryObjectInfo->setClassName("Instrumented");
- info.addMember(m_notInstrumented, "m_notInstrumented");
+ info.addMember(m_notInstrumented, "m_notInstrumented", WTF::RetainingPointer);
}
void disposeOwnedObject()
@@ -215,7 +214,7 @@
helper.addRootObject(instrumented);
EXPECT_EQ(sizeof(NotInstrumented), helper.reportedSizeForAllTypes());
EXPECT_EQ(1u, helper.visitedObjects());
- EXPECT_EQ(1u, helper.linksCount(WTF::PointerMember));
+ EXPECT_EQ(1u, helper.linksCount(WTF::RetainingPointer));
}
TEST(MemoryInstrumentationTest, nullCheck)
@@ -225,7 +224,7 @@
helper.addRootObject(instrumented);
EXPECT_EQ(0u, helper.reportedSizeForAllTypes());
EXPECT_EQ(0u, helper.visitedObjects());
- EXPECT_EQ(0u, helper.linksCount(WTF::PointerMember));
+ EXPECT_EQ(0u, helper.linksCount(WTF::RetainingPointer));
}
TEST(MemoryInstrumentationTest, ptrVsRef)
@@ -236,7 +235,7 @@
helper.addRootObject(&instrumented);
EXPECT_EQ(sizeof(Instrumented) + sizeof(NotInstrumented), helper.reportedSizeForAllTypes());
EXPECT_EQ(2u, helper.visitedObjects());
- EXPECT_EQ(1u, helper.linksCount(WTF::PointerMember));
+ EXPECT_EQ(1u, helper.linksCount(WTF::RetainingPointer));
}
{
InstrumentationTestHelper helper;
@@ -244,7 +243,7 @@
helper.addRootObject(instrumented);
EXPECT_EQ(sizeof(NotInstrumented), helper.reportedSizeForAllTypes());
EXPECT_EQ(1u, helper.visitedObjects());
- EXPECT_EQ(1u, helper.linksCount(WTF::PointerMember));
+ EXPECT_EQ(1u, helper.linksCount(WTF::RetainingPointer));
}
}
@@ -268,8 +267,7 @@
helper.addRootObject(instrumentedWithOwnPtr);
EXPECT_EQ(2u * sizeof(NotInstrumented), helper.reportedSizeForAllTypes());
EXPECT_EQ(2u, helper.visitedObjects());
- EXPECT_EQ(1u, helper.linksCount(WTF::OwnPtrMember));
- EXPECT_EQ(1u, helper.linksCount(WTF::PointerMember));
+ EXPECT_EQ(2u, helper.linksCount(WTF::RetainingPointer));
}
class InstrumentedUndefined {
@@ -334,7 +332,7 @@
void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
{
MemoryClassInfo info(memoryObjectInfo, this, TestType);
- info.addMember(m_value);
+ info.addMember(m_value, "value", WTF::RetainingPointer);
}
T m_value;
@@ -649,22 +647,35 @@
EXPECT_EQ(2u * count + 1, helper.visitedObjects());
}
+class InstrumentedRefCounted : public RefCounted<InstrumentedRefCounted> {
+public:
+ InstrumentedRefCounted() : m_notInstrumented(new NotInstrumented) { }
+ ~InstrumentedRefCounted() { delete m_notInstrumented; }
+
+ void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+ {
+ MemoryClassInfo info(memoryObjectInfo, this, TestType);
+ info.addMember(m_notInstrumented, "m_notInstrumented", WTF::RetainingPointer);
+ }
+private:
+ NotInstrumented* m_notInstrumented;
+};
+
TEST(MemoryInstrumentationTest, hashMapWithInstrumentedPointerKeysAndPointerValues)
{
InstrumentationTestHelper helper;
- typedef HashMap<Instrumented*, Instrumented*> InstrumentedToInstrumentedMap;
+ typedef HashMap<RefPtr<InstrumentedRefCounted>, RefPtr<InstrumentedRefCounted> > InstrumentedToInstrumentedMap;
OwnPtr<InstrumentedToInstrumentedMap> value(adoptPtr(new InstrumentedToInstrumentedMap()));
- Vector<OwnPtr<Instrumented> > valuesVector;
size_t count = 10;
- for (size_t i = 0; i < count; ++i) {
- valuesVector.append(adoptPtr(new Instrumented()));
- valuesVector.append(adoptPtr(new Instrumented()));
- value->set(valuesVector[2 * i].get(), valuesVector[2 * i + 1].get());
- }
+ for (size_t i = 0; i < count; ++i)
+ value->set(adoptRef(new InstrumentedRefCounted()), adoptRef(new InstrumentedRefCounted()));
InstrumentedOwner<InstrumentedToInstrumentedMap* > root(value.get());
helper.addRootObject(root);
- EXPECT_EQ(sizeof(InstrumentedToInstrumentedMap) + sizeof(InstrumentedToInstrumentedMap::ValueType) * value->capacity() + 2 * (sizeof(Instrumented) + sizeof(NotInstrumented)) * value->size(), helper.reportedSizeForAllTypes());
+ EXPECT_EQ(sizeof(InstrumentedToInstrumentedMap)
+ + sizeof(InstrumentedToInstrumentedMap::ValueType) * value->capacity()
+ + 2 * (sizeof(InstrumentedRefCounted) + sizeof(NotInstrumented)) * value->size(),
+ helper.reportedSizeForAllTypes());
EXPECT_EQ(2u * 2u * count + 1, helper.visitedObjects());
}
@@ -705,10 +716,10 @@
EXPECT_EQ(1 + (count - 10), helper.visitedObjects());
}
-class InstrumentedConvertibleToInt {
+class InstrumentedConvertibleToInt : public RefCounted<InstrumentedConvertibleToInt> {
public:
- InstrumentedConvertibleToInt() : m_notInstrumented(0) { }
- virtual ~InstrumentedConvertibleToInt() { }
+ InstrumentedConvertibleToInt() : m_notInstrumented(new NotInstrumented) { }
+ virtual ~InstrumentedConvertibleToInt() { delete m_notInstrumented; }
virtual void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
{
@@ -729,16 +740,11 @@
{
InstrumentationTestHelper helper;
- typedef HashMap<InstrumentedConvertibleToInt*, InstrumentedConvertibleToInt> TestMap;
+ typedef HashMap<RefPtr<InstrumentedConvertibleToInt>, int> TestMap;
OwnPtr<TestMap> value(adoptPtr(new TestMap()));
- Vector<OwnPtr<InstrumentedConvertibleToInt> > keysVector;
- Vector<OwnPtr<NotInstrumented> > valuesVector;
size_t count = 10;
- for (size_t i = 0; i < count; ++i) {
- keysVector.append(adoptPtr(new InstrumentedConvertibleToInt()));
- valuesVector.append(adoptPtr(new NotInstrumented()));
- value->set(keysVector[i].get(), InstrumentedConvertibleToInt()).iterator->value.m_notInstrumented = valuesVector[i].get();
- }
+ for (size_t i = 0; i < count; ++i)
+ value->set(adoptRef(new InstrumentedConvertibleToInt()), 0);
InstrumentedOwner<TestMap* > root(value.get());
helper.addRootObject(root);
EXPECT_EQ(sizeof(TestMap) + sizeof(TestMap::ValueType) * value->capacity() +
@@ -757,7 +763,10 @@
value->set(static_cast<TestEnum>(i), String::number(i));
InstrumentedOwner<EnumToStringMap* > root(value.get());
helper.addRootObject(root);
- EXPECT_EQ(sizeof(EnumToStringMap) + sizeof(EnumToStringMap::ValueType) * value->capacity() + (sizeof(StringImpl) + 1) * value->size(), helper.reportedSizeForAllTypes());
+ EXPECT_EQ(sizeof(EnumToStringMap)
+ + sizeof(EnumToStringMap::ValueType) * value->capacity()
+ + (sizeof(StringImpl) + 1) * value->size(),
+ helper.reportedSizeForAllTypes());
EXPECT_EQ(count + 1, helper.visitedObjects());
}
@@ -765,18 +774,20 @@
{
InstrumentationTestHelper helper;
- typedef HashCountedSet<Instrumented*> TestSet;
+ typedef HashCountedSet<RefPtr<InstrumentedRefCounted> > TestSet;
OwnPtr<TestSet> set(adoptPtr(new TestSet()));
- Vector<OwnPtr<Instrumented> > keysVector;
size_t count = 10;
for (size_t i = 0; i < count; ++i) {
- keysVector.append(adoptPtr(new Instrumented()));
+ RefPtr<InstrumentedRefCounted> instrumentedRefCounted = adoptRef(new InstrumentedRefCounted());
for (size_t j = 0; j <= i; j++)
- set->add(keysVector.last().get());
+ set->add(instrumentedRefCounted);
}
InstrumentedOwner<TestSet* > root(set.get());
helper.addRootObject(root);
- EXPECT_EQ(sizeof(TestSet) + sizeof(HashMap<Instrumented*, unsigned>::ValueType) * set->capacity() + (sizeof(Instrumented) + sizeof(NotInstrumented)) * set->size(), helper.reportedSizeForAllTypes());
+ EXPECT_EQ(sizeof(TestSet)
+ + sizeof(HashMap<RefPtr<InstrumentedRefCounted>, unsigned>::ValueType) * set->capacity()
+ + (sizeof(InstrumentedRefCounted) + sizeof(NotInstrumented)) * set->size(),
+ helper.reportedSizeForAllTypes());
EXPECT_EQ(2u * count + 1, helper.visitedObjects());
}
@@ -789,7 +800,7 @@
helper.addRootObject(value);
EXPECT_EQ(sizeof(int) * 1000 + sizeof(ArrayBuffer), helper.reportedSizeForAllTypes());
EXPECT_EQ(2u, helper.visitedObjects());
- EXPECT_EQ(1u, helper.linksCount(WTF::RefPtrMember));
+ EXPECT_EQ(2u, helper.linksCount(WTF::RetainingPointer));
}
class AncestorWithVirtualMethod {
Modified: trunk/Tools/TestWebKitAPI/Tests/WebCore/HeapGraphSerializerTest.cpp (144526 => 144527)
--- trunk/Tools/TestWebKitAPI/Tests/WebCore/HeapGraphSerializerTest.cpp 2013-03-02 05:18:43 UTC (rev 144526)
+++ trunk/Tools/TestWebKitAPI/Tests/WebCore/HeapGraphSerializerTest.cpp 2013-03-02 05:23:18 UTC (rev 144527)
@@ -248,7 +248,7 @@
HeapGraphReceiver receiver;
Helper helper(receiver.serializer());
void* childObject = helper.addNode("Child", "child", false);
- helper.addEdge(childObject, "pointerToChild", WTF::OwnPtrMember);
+ helper.addEdge(childObject, "pointerToChild", WTF::RetainingPointer);
helper.addNode("Parent", "parent", true);
helper.done();
receiver.printGraph();
@@ -285,7 +285,7 @@
receiver.serializer()->finish();
receiver.printGraph();
EXPECT_EQ(String("[6,0,1,0,0,5,0,4,0,3,9,0,3,0,0,9,0,2,0,0,10,0,5,0,1]"), receiver.dumpNodes());
- EXPECT_EQ(String("[2,7,1,1,8,2,1,8,3,1,0,4]"), receiver.dumpEdges());
+ EXPECT_EQ(String("[2,7,1,2,8,2,2,8,3,1,0,4]"), receiver.dumpEdges());
EXPECT_EQ(String("[]"), receiver.dumpBaseToRealNodeId());
}