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

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

Issue 2565983002: Implicit prefinalizer registration. (Closed)
Patch Set: recast registration class Created 4 years 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
Index: third_party/WebKit/Source/platform/heap/HeapTest.cpp
diff --git a/third_party/WebKit/Source/platform/heap/HeapTest.cpp b/third_party/WebKit/Source/platform/heap/HeapTest.cpp
index 12ed78e42b27758fd3bd73a1d4fcbb08121550cd..aae128a2c35b3414f98d61a8d9b21a739a027f81 100644
--- a/third_party/WebKit/Source/platform/heap/HeapTest.cpp
+++ b/third_party/WebKit/Source/platform/heap/HeapTest.cpp
@@ -1160,7 +1160,6 @@ class ObservableWithPreFinalizer
~ObservableWithPreFinalizer() { m_wasDestructed = true; }
DEFINE_INLINE_TRACE() {}
void dispose() {
- ThreadState::current()->unregisterPreFinalizer(this);
EXPECT_FALSE(m_wasDestructed);
s_disposeWasCalled = true;
}
@@ -1168,7 +1167,6 @@ class ObservableWithPreFinalizer
protected:
ObservableWithPreFinalizer() : m_wasDestructed(false) {
- ThreadState::current()->registerPreFinalizer(this);
}
bool m_wasDestructed;
@@ -1197,7 +1195,6 @@ class PreFinalizerBase : public GarbageCollectedFinalized<PreFinalizerBase> {
protected:
PreFinalizerBase() : m_wasDestructed(false) {
- ThreadState::current()->registerPreFinalizer(this);
}
bool m_wasDestructed;
};
@@ -1218,7 +1215,6 @@ class PreFinalizerMixin : public GarbageCollectedMixin {
protected:
PreFinalizerMixin() : m_wasDestructed(false) {
- ThreadState::current()->registerPreFinalizer(this);
}
bool m_wasDestructed;
};
@@ -1241,7 +1237,6 @@ class PreFinalizerSubClass : public PreFinalizerBase, public PreFinalizerMixin {
protected:
PreFinalizerSubClass() : m_wasDestructed(false) {
- ThreadState::current()->registerPreFinalizer(this);
}
bool m_wasDestructed;
};
@@ -1561,7 +1556,6 @@ class PreFinalizationAllocator
public:
PreFinalizationAllocator(Persistent<IntWrapper>* wrapper)
: m_wrapper(wrapper) {
- ThreadState::current()->registerPreFinalizer(this);
}
void dispose() {
@@ -3881,25 +3875,11 @@ TEST(HeapTest, FinalizationObserver) {
TEST(HeapTest, PreFinalizer) {
Observable::s_willFinalizeWasCalled = false;
- {
- Observable* foo = Observable::create(Bar::create());
- ThreadState::current()->registerPreFinalizer(foo);
- }
+ { Observable::create(Bar::create()); }
preciselyCollectGarbage();
EXPECT_TRUE(Observable::s_willFinalizeWasCalled);
}
-TEST(HeapTest, PreFinalizerIsNotCalledIfUnregistered) {
- Observable::s_willFinalizeWasCalled = false;
- {
- Observable* foo = Observable::create(Bar::create());
- ThreadState::current()->registerPreFinalizer(foo);
- ThreadState::current()->unregisterPreFinalizer(foo);
- }
- preciselyCollectGarbage();
- EXPECT_FALSE(Observable::s_willFinalizeWasCalled);
-}
-
TEST(HeapTest, PreFinalizerUnregistersItself) {
ObservableWithPreFinalizer::s_disposeWasCalled = false;
ObservableWithPreFinalizer::create();
« no previous file with comments | « third_party/WebKit/Source/platform/heap/BlinkGCAPIReference.md ('k') | third_party/WebKit/Source/platform/heap/ThreadState.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698