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

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

Issue 2531973002: Simple BlinkGC heap compaction. (Closed)
Patch Set: add pointer alignment handling to SparseHeapBitmap 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 5570f70fb115788ddbc9fda0c0b7dc89217792d4..6016920bdd70b4cbfd46456bcf96833fb0837abd 100644
--- a/third_party/WebKit/Source/platform/heap/HeapTest.cpp
+++ b/third_party/WebKit/Source/platform/heap/HeapTest.cpp
@@ -332,7 +332,7 @@ class CountingVisitor : public Visitor {
m_count++;
}
- void registerDelayedMarkNoTracing(const void*) override {}
+ void registerDelayedMarkNoTracing(void**) override {}
void registerWeakMembers(const void*, const void*, WeakCallback) override {}
void registerWeakTable(const void*,
EphemeronCallback,
@@ -349,6 +349,12 @@ class CountingVisitor : public Visitor {
return true;
}
+ void registerMovingObjectReference(MovableReference*) override {}
+
+ void registerMovingObjectCallback(MovableReference,
+ MovingObjectCallback,
+ void*) override {}
+
size_t count() { return m_count; }
void reset() { m_count = 0; }
@@ -3765,6 +3771,7 @@ TEST(HeapTest, RefCountedGarbageCollectedWithStackPointers) {
pointer1 = object1.get();
pointer2 = object2.get();
void* objects[2] = {object1.get(), object2.get()};
+ ThreadState::GCForbiddenScope gcScope(ThreadState::current());
haraken 2016/12/09 07:25:56 Would you help me understand why these GCForbidden
sof 2016/12/09 21:44:04 As long as there's a DCHECK() in the Visitor const
haraken 2016/12/12 01:25:10 Makes sense. I'm wondering if we can/should unify
RefCountedGarbageCollectedVisitor visitor(ThreadState::current(), 2,
objects);
ThreadState::current()->visitPersistents(&visitor);
@@ -3782,6 +3789,7 @@ TEST(HeapTest, RefCountedGarbageCollectedWithStackPointers) {
// At this point, the reference counts of object1 and object2 are 0.
// Only pointer1 and pointer2 keep references to object1 and object2.
void* objects[] = {0};
+ ThreadState::GCForbiddenScope gcScope(ThreadState::current());
RefCountedGarbageCollectedVisitor visitor(ThreadState::current(), 0,
objects);
ThreadState::current()->visitPersistents(&visitor);
@@ -3792,6 +3800,7 @@ TEST(HeapTest, RefCountedGarbageCollectedWithStackPointers) {
Persistent<RefCountedAndGarbageCollected> object1(pointer1);
Persistent<RefCountedAndGarbageCollected2> object2(pointer2);
void* objects[2] = {object1.get(), object2.get()};
+ ThreadState::GCForbiddenScope gcScope(ThreadState::current());
RefCountedGarbageCollectedVisitor visitor(ThreadState::current(), 2,
objects);
ThreadState::current()->visitPersistents(&visitor);
@@ -3955,6 +3964,7 @@ TEST(HeapTest, CheckAndMarkPointer) {
// checkAndMarkPointer tests.
{
TestGCScope scope(BlinkGC::HeapPointersOnStack);
+ ThreadState::GCForbiddenScope gcScope(ThreadState::current());
CountingVisitor visitor(ThreadState::current());
EXPECT_TRUE(scope.allThreadsParked()); // Fail the test if we could not
// park all threads.
@@ -3976,6 +3986,7 @@ TEST(HeapTest, CheckAndMarkPointer) {
clearOutOldGarbage();
{
TestGCScope scope(BlinkGC::HeapPointersOnStack);
+ ThreadState::GCForbiddenScope gcScope(ThreadState::current());
CountingVisitor visitor(ThreadState::current());
EXPECT_TRUE(scope.allThreadsParked());
heap.flushHeapDoesNotContainCache();
@@ -5874,6 +5885,7 @@ class PartObject {
};
TEST(HeapTest, TraceIfNeeded) {
+ ThreadState::GCForbiddenScope scope(ThreadState::current());
CountingVisitor visitor(ThreadState::current());
{

Powered by Google App Engine
This is Rietveld 408576698