| Index: src/handles-inl.h
|
| diff --git a/src/handles-inl.h b/src/handles-inl.h
|
| index bf19f5f8648cf94740ad0328de036b388903565d..b31351256edfe7711bd574147bbc03b9c6a8f3d3 100644
|
| --- a/src/handles-inl.h
|
| +++ b/src/handles-inl.h
|
| @@ -55,18 +55,22 @@ inline T* Handle<T>::operator*() const {
|
| inline NoHandleAllocation::NoHandleAllocation() {
|
| v8::ImplementationUtilities::HandleScopeData* current =
|
| v8::ImplementationUtilities::CurrentHandleScope();
|
| - extensions_ = current->extensions;
|
| // Shrink the current handle scope to make it impossible to do
|
| // handle allocations without an explicit handle scope.
|
| current->limit = current->next;
|
| - current->extensions = -1;
|
| +
|
| + level_ = current->level;
|
| + current->level = 0;
|
| }
|
|
|
|
|
| inline NoHandleAllocation::~NoHandleAllocation() {
|
| // Restore state in current handle scope to re-enable handle
|
| // allocations.
|
| - v8::ImplementationUtilities::CurrentHandleScope()->extensions = extensions_;
|
| + v8::ImplementationUtilities::HandleScopeData* current =
|
| + v8::ImplementationUtilities::CurrentHandleScope();
|
| + ASSERT_EQ(0, current->level);
|
| + current->level = level_;
|
| }
|
| #endif
|
|
|
|
|