On Thu, Nov 20, 2014 at 12:48 AM, Robert Jenks <rje...@universalbits.com>
wrote:

> [...]    class Jav8Context {
>     public:
>         Jav8Context() {
>             // Create a new Isolate and make it the current one.
>             isolate_ = v8::Isolate::New();
>             v8::Isolate::Scope isolateScope(isolate_);
>             isolate_->Enter();
>             v8::HandleScope handleScope(isolate_);
>             v8::Handle<v8::Context> ctxt = v8::Context::New(isolate_);
>             ctxt->Enter();
>             context_ = new v8::Persistent<v8::Context>(isolate_, ctxt);
>         }
>         ~Jav8Context() {
>             context_->Reset();
>             isolate_->Exit();
>             isolate_->Dispose();
>         }
>         v8::Isolate* GetIsolate() {return isolate_;}
>         v8::Persistent<v8::Context>* GetContext() {return context_;}
>     private:
>         v8::Isolate* isolate_;
>         v8::Persistent<v8::Context>* context_;
>     };
>

Just a few quick remarks:

   * Isolate::Scope already does the Enter/Exit for you, so using
Enter/Exit explicitly, too, looks fishy.

   * There is no call to context_->Exit() AFAICT.

   * If Jav8Context is intended to be stack-allocated, then handling
Enter/Exit there is OK. OTOH if it is intended to used via new/delete,
having Enter/Exit in it will normally make your life harder and is a source
of bugs.

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to