| Index: third_party/WebKit/Source/platform/heap/ThreadState.h
|
| diff --git a/third_party/WebKit/Source/platform/heap/ThreadState.h b/third_party/WebKit/Source/platform/heap/ThreadState.h
|
| index 4f04eb71dabdfa9b7ba3fd19a7f162bb88e87fbb..066af3b4e29549fee7d76162e99e71617fe6e26d 100644
|
| --- a/third_party/WebKit/Source/platform/heap/ThreadState.h
|
| +++ b/third_party/WebKit/Source/platform/heap/ThreadState.h
|
| @@ -285,6 +285,8 @@ class PLATFORM_EXPORT ThreadState {
|
| // the executions of mutators.
|
| void makeConsistentForMutator();
|
|
|
| + void compact();
|
| +
|
| // Support for disallowing allocation. Mainly used for sanity
|
| // checks asserts.
|
| bool isAllocationAllowed() const {
|
| @@ -322,6 +324,19 @@ class PLATFORM_EXPORT ThreadState {
|
| ThreadState* const m_threadState;
|
| };
|
|
|
| + class GCForbiddenScope final {
|
| + STACK_ALLOCATED();
|
| +
|
| + public:
|
| + GCForbiddenScope(ThreadState* threadState) : m_threadState(threadState) {
|
| + m_threadState->enterGCForbiddenScope();
|
| + }
|
| + ~GCForbiddenScope() { m_threadState->leaveGCForbiddenScope(); }
|
| +
|
| + private:
|
| + ThreadState* const m_threadState;
|
| + };
|
| +
|
| void flushHeapDoesNotContainCacheIfNeeded();
|
|
|
| // Safepoint related functionality.
|
| @@ -561,10 +576,14 @@ class PLATFORM_EXPORT ThreadState {
|
|
|
| v8::Isolate* isolate() const { return m_isolate; }
|
|
|
| + BlinkGC::StackState stackState() const { return m_stackState; }
|
| +
|
| void collectGarbage(BlinkGC::StackState, BlinkGC::GCType, BlinkGC::GCReason);
|
| void collectGarbageForTerminatingThread();
|
| void collectAllGarbage();
|
|
|
| + static const char* gcReasonString(BlinkGC::GCReason);
|
| +
|
| private:
|
| enum SnapshotType { HeapSnapshot, FreelistSnapshot };
|
|
|
|
|