| 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 a34732f7fd8565e8453072bbc26501db534c2a91..bc9940964e98c373c5bcf6e459d29684f235fd05 100644
|
| --- a/third_party/WebKit/Source/platform/heap/ThreadState.h
|
| +++ b/third_party/WebKit/Source/platform/heap/ThreadState.h
|
| @@ -282,6 +282,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 {
|
| @@ -320,6 +322,20 @@ class PLATFORM_EXPORT ThreadState {
|
| ThreadState* const m_threadState;
|
| };
|
|
|
| + class GCForbiddenScope final {
|
| + STACK_ALLOCATED();
|
| +
|
| + public:
|
| + explicit GCForbiddenScope(ThreadState* threadState)
|
| + : m_threadState(threadState) {
|
| + m_threadState->enterGCForbiddenScope();
|
| + }
|
| + ~GCForbiddenScope() { m_threadState->leaveGCForbiddenScope(); }
|
| +
|
| + private:
|
| + ThreadState* const m_threadState;
|
| + };
|
| +
|
| void flushHeapDoesNotContainCacheIfNeeded();
|
|
|
| // Safepoint related functionality.
|
| @@ -536,6 +552,8 @@ 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();
|
| @@ -560,6 +578,8 @@ class PLATFORM_EXPORT ThreadState {
|
| }
|
| };
|
|
|
| + static const char* gcReasonString(BlinkGC::GCReason);
|
| +
|
| private:
|
| template <typename T>
|
| friend class PrefinalizerRegistration;
|
|
|