| Index: src/heap-inl.h
|
| diff --git a/src/heap-inl.h b/src/heap-inl.h
|
| index 18a2cf351b33f1eb2886fe8b8658519159a445b1..b71978baf545b42e3034c96d0c14e514e4cd42a9 100644
|
| --- a/src/heap-inl.h
|
| +++ b/src/heap-inl.h
|
| @@ -872,6 +872,8 @@ bool EnterAllocationScope(Isolate* isolate, bool allow_allocation) {
|
| bool active = !isolate->optimizing_compiler_thread()->IsOptimizerThread();
|
| bool last_state = isolate->heap()->IsAllocationAllowed();
|
| if (active) {
|
| + // TODO(yangguo): Make HandleDereferenceGuard avoid isolate mutation in the
|
| + // same way if running on the optimizer thread.
|
| isolate->heap()->set_allow_allocation(allow_allocation);
|
| }
|
| return last_state;
|
| @@ -879,7 +881,10 @@ bool EnterAllocationScope(Isolate* isolate, bool allow_allocation) {
|
|
|
|
|
| void ExitAllocationScope(Isolate* isolate, bool last_state) {
|
| - isolate->heap()->set_allow_allocation(last_state);
|
| + bool active = !isolate->optimizing_compiler_thread()->IsOptimizerThread();
|
| + if (active) {
|
| + isolate->heap()->set_allow_allocation(last_state);
|
| + }
|
| }
|
|
|
|
|
|
|