| Index: runtime/vm/handles.h
|
| ===================================================================
|
| --- runtime/vm/handles.h (revision 1496)
|
| +++ runtime/vm/handles.h (working copy)
|
| @@ -25,7 +25,7 @@
|
| // object is destroyed.
|
| // Code that uses scoped handles typically looks as follows:
|
| // {
|
| -// HANDLESCOPE();
|
| +// HANDLESCOPE(isolate);
|
| // const String& str = String::Handle(String::New("abc"));
|
| // .....
|
| // .....
|
| @@ -48,7 +48,7 @@
|
| // raw dart objects directly. We use NOHANDLESCOPE to assert that we do not
|
| // add code that will allocate new handles during this critical area.
|
| // {
|
| -// NOHANDLESCOPE();
|
| +// NOHANDLESCOPE(isolate);
|
| // ....
|
| // ....
|
| // }
|
| @@ -243,7 +243,7 @@
|
| // The class HandleScope is used to start a new handles scope in the code.
|
| // It is used as follows:
|
| // {
|
| -// HANDLESCOPE();
|
| +// HANDLESCOPE(isolate);
|
| // ....
|
| // .....
|
| // code that creates some scoped handles.
|
| @@ -251,7 +251,7 @@
|
| // }
|
| class HandleScope : public StackResource {
|
| public:
|
| - HandleScope();
|
| + explicit HandleScope(Isolate* isolate);
|
| ~HandleScope();
|
|
|
| private:
|
| @@ -264,7 +264,8 @@
|
| };
|
|
|
| // Macro to start a new Handle scope.
|
| -#define HANDLESCOPE() dart::HandleScope vm_internal_handles_scope_;
|
| +#define HANDLESCOPE(isolate) \
|
| + dart::HandleScope vm_internal_handles_scope_(isolate);
|
|
|
|
|
| // The class NoHandleScope is used in critical regions of the virtual machine
|
| @@ -273,7 +274,7 @@
|
| // during this critical area.
|
| // It is used as follows:
|
| // {
|
| -// NOHANDLESCOPE();
|
| +// NOHANDLESCOPE(isolate);
|
| // ....
|
| // .....
|
| // critical code that manipulates dart objects directly.
|
| @@ -282,7 +283,7 @@
|
| #if defined(DEBUG)
|
| class NoHandleScope : public StackResource {
|
| public:
|
| - NoHandleScope();
|
| + explicit NoHandleScope(Isolate* isolate);
|
| ~NoHandleScope();
|
|
|
| private:
|
| @@ -291,7 +292,7 @@
|
| #else // defined(DEBUG)
|
| class NoHandleScope : public ValueObject {
|
| public:
|
| - NoHandleScope() { }
|
| + explicit NoHandleScope(Isolate* isolate) { }
|
| ~NoHandleScope() { }
|
|
|
| private:
|
| @@ -300,7 +301,8 @@
|
| #endif // defined(DEBUG)
|
|
|
| // Macro to start a no handles scope in the code.
|
| -#define NOHANDLESCOPE() dart::NoHandleScope no_vm_internal_handles_scope_;
|
| +#define NOHANDLESCOPE(isolate) \
|
| + dart::NoHandleScope no_vm_internal_handles_scope_(isolate);
|
|
|
| } // namespace dart
|
|
|
|
|