Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3099)

Unified Diff: Source/platform/heap/HeapTest.cpp

Issue 676603002: Oilpan: HeapTest: FinalizationObserverWithHashMap should not leave a Persistent object. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/platform/heap/HeapTest.cpp
diff --git a/Source/platform/heap/HeapTest.cpp b/Source/platform/heap/HeapTest.cpp
index 9dcfd8d19d3ea408a74076f1fe0ce33f77ed4ee9..6e7e0052f2196816cda7ca33fb6a49245921d419 100644
--- a/Source/platform/heap/HeapTest.cpp
+++ b/Source/platform/heap/HeapTest.cpp
@@ -1114,21 +1114,28 @@ public:
return map;
}
+ static void clearObservers()
+ {
+ delete s_observerMap;
+ s_observerMap = nullptr;
+ }
+
static bool s_didCallWillFinalize;
private:
static ObserverMap& observers()
{
- DEFINE_STATIC_LOCAL(Persistent<ObserverMap>, observerMap, ());
- if (!observerMap)
- observerMap = new ObserverMap();
- return *observerMap;
+ if (!s_observerMap)
+ s_observerMap = new Persistent<ObserverMap>(new ObserverMap());
+ return **s_observerMap;
}
Observable& m_target;
+ static Persistent<ObserverMap>* s_observerMap;
};
bool FinalizationObserverWithHashMap::s_didCallWillFinalize = false;
+Persistent<FinalizationObserverWithHashMap::ObserverMap>* FinalizationObserverWithHashMap::s_observerMap;
class SuperClass;
@@ -3311,6 +3318,8 @@ TEST(HeapTest, FinalizationObserver)
EXPECT_EQ(0u, Bar::s_live);
EXPECT_EQ(0u, map.size());
EXPECT_TRUE(FinalizationObserverWithHashMap::s_didCallWillFinalize);
+
+ FinalizationObserverWithHashMap::clearObservers();
}
TEST(HeapTest, PreFinalizer)
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698