Chromium Code Reviews| Index: src/handles.h |
| diff --git a/src/handles.h b/src/handles.h |
| index 960696b5fb81f705f2128b5586fef44ca0c8e7fb..a369646600556d94a27c2870d1463cbc67a66fe0 100644 |
| --- a/src/handles.h |
| +++ b/src/handles.h |
| @@ -95,6 +95,9 @@ class Handle { |
| }; |
| +class HandleScopeImplementer; |
| + |
| + |
| // A stack-allocated class that governs a number of local handles. |
| // After a handle scope has been created, all local handles will be |
| // allocated within that handle scope until either the handle scope is |
| @@ -157,10 +160,54 @@ class HandleScope { |
| static void ZapRange(internal::Object** start, internal::Object** end); |
| friend class v8::HandleScope; |
| + friend class v8::internal::HandleScopeImplementer; |
| friend class v8::ImplementationUtilities; |
| }; |
| +class DeferredHandles; |
| + |
| + |
| +class DeferredHandleScope { |
| + public: |
| + explicit DeferredHandleScope(Isolate* isolate); |
| + // The DeferredHandles object returned stores the Handles created |
| + // since the creation of this DeferredHandleScope. The Handles are |
| + // alive till as long as the DeferredHandles object is alive. |
|
Erik Corry
2012/06/27 10:28:15
till as long as -> as long as
sanjoy
2012/06/27 11:17:09
Fixed.
|
| + DeferredHandles* Detach(); |
| + ~DeferredHandleScope(); |
| + |
| + private: |
| + Object** prev_limit_; |
| + Object** prev_next_; |
| + HandleScopeImplementer* impl_; |
| + |
| +#ifdef DEBUG |
| + bool handles_detached_; |
| + int prev_level_; |
| +#endif |
| + |
| + friend class HandleScopeImplementer; |
| +}; |
| + |
| + |
| +class CompilationInfo; |
|
Erik Corry
2012/06/27 10:28:15
This declaration and the CompilationHandleScope ar
sanjoy
2012/06/27 11:17:09
Moved to compiler.h.
|
| + |
| + |
| +// A wrapper around a CompilationInfo that Detaches the Handles from |
|
Erik Corry
2012/06/27 10:28:15
Detaches -> detaches
sanjoy
2012/06/27 11:17:09
Fixed.
|
| +// the underlying DeferredHandleScope and stores them in info_ on |
| +// destruction. |
| +class CompilationHandleScope BASE_EMBEDDED { |
| + public: |
| + explicit CompilationHandleScope(CompilationInfo* info); |
| + ~CompilationHandleScope(); |
| + |
| + private: |
| + DeferredHandleScope deferred_; |
| + CompilationInfo* info_; |
| +}; |
| + |
| + |
| // ---------------------------------------------------------------------------- |
| // Handle operations. |
| // They might invoke garbage collection. The result is an handle to |