| Index: runtime/vm/handles.h
|
| diff --git a/runtime/vm/handles.h b/runtime/vm/handles.h
|
| index da283d7acbae1dddeff9c0a24429f4e5e273d8a6..f86d0bb860846a5142edb1d4dc13a65f5bab7d4a 100644
|
| --- a/runtime/vm/handles.h
|
| +++ b/runtime/vm/handles.h
|
| @@ -292,7 +292,7 @@ class VMHandles : public Handles<kVMHandleSizeInWords,
|
| // The class HandleScope is used to start a new handles scope in the code.
|
| // It is used as follows:
|
| // {
|
| -// HANDLESCOPE(isolate);
|
| +// HANDLESCOPE(thread);
|
| // ....
|
| // .....
|
| // code that creates some scoped handles.
|
| @@ -300,10 +300,14 @@ class VMHandles : public Handles<kVMHandleSizeInWords,
|
| // }
|
| class HandleScope : public StackResource {
|
| public:
|
| + explicit HandleScope(Thread* thread);
|
| + // DEPRECATED: Use Thread version.
|
| explicit HandleScope(Isolate* isolate);
|
| ~HandleScope();
|
|
|
| private:
|
| + void Initialize();
|
| +
|
| VMHandles::HandlesBlock* saved_handle_block_; // Handle block at prev scope.
|
| uword saved_handle_slot_; // Next available handle slot at previous scope.
|
| #if defined(DEBUG)
|
| @@ -313,8 +317,8 @@ class HandleScope : public StackResource {
|
| };
|
|
|
| // Macro to start a new Handle scope.
|
| -#define HANDLESCOPE(isolate) \
|
| - dart::HandleScope vm_internal_handles_scope_(isolate);
|
| +#define HANDLESCOPE(isolate_or_thread) \
|
| + dart::HandleScope vm_internal_handles_scope_(isolate_or_thread);
|
|
|
|
|
| // The class NoHandleScope is used in critical regions of the virtual machine
|
| @@ -323,7 +327,7 @@ class HandleScope : public StackResource {
|
| // during this critical area.
|
| // It is used as follows:
|
| // {
|
| -// NOHANDLESCOPE(isolate);
|
| +// NOHANDLESCOPE(thread);
|
| // ....
|
| // .....
|
| // critical code that manipulates dart objects directly.
|
| @@ -332,6 +336,8 @@ class HandleScope : public StackResource {
|
| #if defined(DEBUG)
|
| class NoHandleScope : public StackResource {
|
| public:
|
| + explicit NoHandleScope(Thread* thread);
|
| + // DEPRECATED: Use Thread version.
|
| explicit NoHandleScope(Isolate* isolate);
|
| NoHandleScope();
|
| ~NoHandleScope();
|
| @@ -342,6 +348,7 @@ class NoHandleScope : public StackResource {
|
| #else // defined(DEBUG)
|
| class NoHandleScope : public ValueObject {
|
| public:
|
| + explicit NoHandleScope(Thread* thread) { }
|
| explicit NoHandleScope(Isolate* isolate) { }
|
| NoHandleScope() { }
|
| ~NoHandleScope() { }
|
| @@ -352,8 +359,8 @@ class NoHandleScope : public ValueObject {
|
| #endif // defined(DEBUG)
|
|
|
| // Macro to start a no handles scope in the code.
|
| -#define NOHANDLESCOPE(isolate) \
|
| - dart::NoHandleScope no_vm_internal_handles_scope_(isolate);
|
| +#define NOHANDLESCOPE(isolate_or_thread) \
|
| + dart::NoHandleScope no_vm_internal_handles_scope_(isolate_or_thread);
|
|
|
| } // namespace dart
|
|
|
|
|