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

Unified Diff: Source/platform/heap/Heap.h

Issue 747363005: Oilpan: Introduce a state transition model for Oilpan GC states (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 1 month 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: Source/platform/heap/Heap.h
diff --git a/Source/platform/heap/Heap.h b/Source/platform/heap/Heap.h
index 903c0760dc81073a12d3d9704c4efbb378fb764f..3597c0018a1e567c92e767cc0f5ca68f041df314 100644
--- a/Source/platform/heap/Heap.h
+++ b/Source/platform/heap/Heap.h
@@ -919,7 +919,8 @@ public:
static void globalWeakProcessing();
static void setForcePreciseGCForTesting();
- static void prepareForGC();
+ static void preGC();
+ static void postGC();
// Conservatively checks whether an address is a pointer in any of the thread
// heaps. If so marks the object pointed to as live.
@@ -945,6 +946,10 @@ public:
// during conservative scanning.
static bool lastGCWasConservative() { return s_lastGCWasConservative; }
+ static void enterGC() { ASSERT(!s_inGC); s_inGC = true; }
+ static void leaveGC() { ASSERT(s_inGC); s_inGC = false; }
+ static bool isInGC() { return s_inGC; }
+
static FreePagePool* freePagePool() { return s_freePagePool; }
static OrphanedPagePool* orphanedPagePool() { return s_orphanedPagePool; }
@@ -984,8 +989,8 @@ private:
RegionTree* m_right;
};
- static void resetAllocatedObjectSize() { ASSERT(ThreadState::isAnyThreadInGC()); s_allocatedObjectSize = 0; }
- static void resetMarkedObjectSize() { ASSERT(ThreadState::isAnyThreadInGC()); s_markedObjectSize = 0; }
+ static void resetAllocatedObjectSize() { ASSERT(Heap::isInGC()); s_allocatedObjectSize = 0; }
+ static void resetMarkedObjectSize() { ASSERT(Heap::isInGC()); s_markedObjectSize = 0; }
static Visitor* s_markingVisitor;
static CallbackStack* s_markingStack;
@@ -995,6 +1000,7 @@ private:
static HeapDoesNotContainCache* s_heapDoesNotContainCache;
static bool s_shutdownCalled;
static bool s_lastGCWasConservative;
+ static bool s_inGC;
static FreePagePool* s_freePagePool;
static OrphanedPagePool* s_orphanedPagePool;
static RegionTree* s_regionTree;

Powered by Google App Engine
This is Rietveld 408576698