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

Unified Diff: third_party/WebKit/Source/bindings/core/v8/ScriptWrappableVisitorTest.cpp

Issue 2609883003: [wrapper-tracing] Avoid firing the write barrier after TraceEpilogue (Closed)
Patch Set: Fix tests: Wrap testing code with TracePrologue and AbortTracing Created 3 years, 12 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
Index: third_party/WebKit/Source/bindings/core/v8/ScriptWrappableVisitorTest.cpp
diff --git a/third_party/WebKit/Source/bindings/core/v8/ScriptWrappableVisitorTest.cpp b/third_party/WebKit/Source/bindings/core/v8/ScriptWrappableVisitorTest.cpp
index 15cad2ef41efb9f41f4fbd7bcf4c9d7dccd5c352..a3e2680c2a80ede4f859a7c01088ae2379c99f1a 100644
--- a/third_party/WebKit/Source/bindings/core/v8/ScriptWrappableVisitorTest.cpp
+++ b/third_party/WebKit/Source/bindings/core/v8/ScriptWrappableVisitorTest.cpp
@@ -69,7 +69,7 @@ TEST(ScriptWrappableVisitorTest, ScriptWrappableVisitorTracesWrappers) {
EXPECT_TRUE(targetHeader->isWrapperHeaderMarked());
EXPECT_TRUE(dependencyHeader->isWrapperHeaderMarked());
- visitor->TraceEpilogue();
+ visitor->AbortTracing();
}
TEST(ScriptWrappableVisitorTest, OilpanCollectObjectsNotReachableFromV8) {
@@ -169,13 +169,14 @@ TEST(ScriptWrappableVisitorTest, OilpanClearsHeadersWhenObjectDied) {
DeathAwareScriptWrappable* object = DeathAwareScriptWrappable::create();
ScriptWrappableVisitor* visitor =
V8PerIsolateData::from(scope.isolate())->scriptWrappableVisitor();
+ visitor->TracePrologue();
auto header = HeapObjectHeader::fromPayload(object);
visitor->getHeadersToUnmark()->push_back(header);
preciselyCollectGarbage();
EXPECT_FALSE(visitor->getHeadersToUnmark()->contains(header));
- visitor->getHeadersToUnmark()->clear();
+ visitor->AbortTracing();
}
TEST(ScriptWrappableVisitorTest, OilpanClearsMarkingDequeWhenObjectDied) {
@@ -187,6 +188,7 @@ TEST(ScriptWrappableVisitorTest, OilpanClearsMarkingDequeWhenObjectDied) {
DeathAwareScriptWrappable* object = DeathAwareScriptWrappable::create();
ScriptWrappableVisitor* visitor =
V8PerIsolateData::from(scope.isolate())->scriptWrappableVisitor();
+ visitor->TracePrologue();
visitor->pushToMarkingDeque(
TraceTrait<DeathAwareScriptWrappable>::markAndTraceWrapper,
TraceTrait<DeathAwareScriptWrappable>::heapObjectHeader, object);
@@ -197,8 +199,7 @@ TEST(ScriptWrappableVisitorTest, OilpanClearsMarkingDequeWhenObjectDied) {
EXPECT_EQ(visitor->getMarkingDeque()->first().rawObjectPointer(), nullptr);
- visitor->getMarkingDeque()->clear();
- visitor->getVerifierDeque()->clear();
+ visitor->AbortTracing();
}
TEST(ScriptWrappableVisitorTest, NonMarkedObjectDoesNothingOnWriteBarrierHit) {
@@ -209,6 +210,7 @@ TEST(ScriptWrappableVisitorTest, NonMarkedObjectDoesNothingOnWriteBarrierHit) {
ScriptWrappableVisitor* visitor =
V8PerIsolateData::from(scope.isolate())->scriptWrappableVisitor();
+ visitor->TracePrologue();
DeathAwareScriptWrappable* target = DeathAwareScriptWrappable::create();
DeathAwareScriptWrappable* dependency = DeathAwareScriptWrappable::create();
@@ -218,6 +220,7 @@ TEST(ScriptWrappableVisitorTest, NonMarkedObjectDoesNothingOnWriteBarrierHit) {
target->setRawDependency(dependency);
EXPECT_TRUE(visitor->getMarkingDeque()->isEmpty());
+ visitor->AbortTracing();
}
TEST(ScriptWrappableVisitorTest,
@@ -229,6 +232,7 @@ TEST(ScriptWrappableVisitorTest,
ScriptWrappableVisitor* visitor =
V8PerIsolateData::from(scope.isolate())->scriptWrappableVisitor();
+ visitor->TracePrologue();
DeathAwareScriptWrappable* target = DeathAwareScriptWrappable::create();
DeathAwareScriptWrappable* dependencies[] = {
@@ -249,6 +253,7 @@ TEST(ScriptWrappableVisitorTest,
target->addWrappedHashMapDependency(dependencies[3], dependencies[4]);
EXPECT_TRUE(visitor->getMarkingDeque()->isEmpty());
+ visitor->AbortTracing();
}
TEST(ScriptWrappableVisitorTest,
@@ -260,6 +265,7 @@ TEST(ScriptWrappableVisitorTest,
ScriptWrappableVisitor* visitor =
V8PerIsolateData::from(scope.isolate())->scriptWrappableVisitor();
+ visitor->TracePrologue();
DeathAwareScriptWrappable* target = DeathAwareScriptWrappable::create();
DeathAwareScriptWrappable* dependencies[] = {
@@ -280,9 +286,7 @@ TEST(ScriptWrappableVisitorTest,
EXPECT_TRUE(DequeContains(*visitor->getMarkingDeque(), dependencies[i]));
}
- visitor->getMarkingDeque()->clear();
- visitor->getVerifierDeque()->clear();
- visitor->getHeadersToUnmark()->clear();
+ visitor->AbortTracing();
}
namespace {
@@ -357,7 +361,7 @@ TEST(ScriptWrappableVisitorTest, NoWriteBarrierOnUnmarkedContainer) {
rawVisitor->AdvanceTracing(
0, v8::EmbedderHeapTracer::AdvanceTracingActions(
v8::EmbedderHeapTracer::ForceCompletionAction::FORCE_COMPLETION));
- rawVisitor->TraceEpilogue();
+ rawVisitor->AbortTracing();
}
TEST(ScriptWrappableVisitorTest, WriteBarrierTriggersOnMarkedContainer) {
@@ -380,7 +384,7 @@ TEST(ScriptWrappableVisitorTest, WriteBarrierTriggersOnMarkedContainer) {
rawVisitor->AdvanceTracing(
0, v8::EmbedderHeapTracer::AdvanceTracingActions(
v8::EmbedderHeapTracer::ForceCompletionAction::FORCE_COMPLETION));
- rawVisitor->TraceEpilogue();
+ rawVisitor->AbortTracing();
}
TEST(ScriptWrappableVisitorTest, VtableAtObjectStart) {

Powered by Google App Engine
This is Rietveld 408576698