From: Ben Noordhuis Date: Fri, 7 Jun 2013 14:47:54 +0000 (+0200) Subject: src: unexport node_isolate X-Git-Tag: v0.11.3~50 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4bb4f734b3dc3cd42ffd7c5d128fec2abd6b97dd;p=platform%2Fupstream%2Fnodejs.git src: unexport node_isolate Commit 0bba5902 accidentally (or maybe erroneously) added node_isolate to src/node.h and src/node_object_wrap.h. Undo that, said variable is not for public consumption. Add-on authors should use v8::Isolate::GetCurrent() instead. I missed that while reviewing. Mea culpa. Fixes #5639. --- diff --git a/src/node.h b/src/node.h index ded8b78..49f342f 100644 --- a/src/node.h +++ b/src/node.h @@ -86,8 +86,6 @@ namespace node { -extern v8::Isolate* node_isolate; - NODE_EXTERN extern bool no_deprecation; NODE_EXTERN int Start(int argc, char *argv[]); @@ -97,8 +95,9 @@ v8::Handle SetupProcessObject(int argc, char *argv[]); void Load(v8::Handle process); void EmitExit(v8::Handle process); -#define NODE_PSYMBOL(s) \ - v8::Persistent::New(node_isolate, v8::String::NewSymbol(s)) +#define NODE_PSYMBOL(s) \ + v8::Persistent::New(v8::Isolate::GetCurrent(), \ + v8::String::NewSymbol(s)) /* Converts a unixtime to V8 Date */ #define NODE_UNIXTIME_V8(t) v8::Date::New(1000*static_cast(t)) @@ -152,10 +151,10 @@ NODE_EXTERN ssize_t DecodeWrite(char *buf, v8::Local BuildStatsObject(const uv_stat_t* s); -static inline v8::Persistent* cb_persist( - const v8::Local &v) { - v8::Persistent *fn = new v8::Persistent(); - *fn = v8::Persistent::New(node_isolate, v8::Local::Cast(v)); +static inline v8::Persistent* cb_persist(v8::Local v) { + v8::Persistent* fn = new v8::Persistent(); + *fn = v8::Persistent::New(v8::Isolate::GetCurrent(), + v.As()); return fn; } @@ -167,7 +166,7 @@ static inline v8::Persistent* cb_unwrap(void *data) { } static inline void cb_destroy(v8::Persistent * cb) { - cb->Dispose(node_isolate); + cb->Dispose(v8::Isolate::GetCurrent()); delete cb; } diff --git a/src/node_object_wrap.h b/src/node_object_wrap.h index d1826c8..4495b17 100644 --- a/src/node_object_wrap.h +++ b/src/node_object_wrap.h @@ -37,8 +37,6 @@ namespace node { -extern v8::Isolate* node_isolate; - class NODE_EXTERN ObjectWrap { public: ObjectWrap ( ) { @@ -48,10 +46,11 @@ class NODE_EXTERN ObjectWrap { virtual ~ObjectWrap ( ) { if (!handle_.IsEmpty()) { - assert(handle_.IsNearDeath(node_isolate)); - handle_.ClearWeak(node_isolate); + v8::Isolate* isolate = v8::Isolate::GetCurrent(); + assert(handle_.IsNearDeath(isolate)); + handle_.ClearWeak(isolate); handle_->SetAlignedPointerInInternalField(0, 0); - handle_.Dispose(node_isolate); + handle_.Dispose(isolate); handle_.Clear(); } } @@ -71,15 +70,17 @@ class NODE_EXTERN ObjectWrap { inline void Wrap (v8::Handle handle) { assert(handle_.IsEmpty()); assert(handle->InternalFieldCount() > 0); - handle_ = v8::Persistent::New(node_isolate, handle); + v8::Isolate* isolate = v8::Isolate::GetCurrent(); + handle_ = v8::Persistent::New(isolate, handle); handle_->SetAlignedPointerInInternalField(0, this); MakeWeak(); } inline void MakeWeak (void) { - handle_.MakeWeak(node_isolate, this, WeakCallback); - handle_.MarkIndependent(node_isolate); + v8::Isolate* isolate = v8::Isolate::GetCurrent(); + handle_.MakeWeak(isolate, this, WeakCallback); + handle_.MarkIndependent(isolate); } /* Ref() marks the object as being attached to an event loop. @@ -89,7 +90,7 @@ class NODE_EXTERN ObjectWrap { virtual void Ref() { assert(!handle_.IsEmpty()); refs_++; - handle_.ClearWeak(node_isolate); + handle_.ClearWeak(v8::Isolate::GetCurrent()); } /* Unref() marks an object as detached from the event loop. This is its @@ -103,7 +104,7 @@ class NODE_EXTERN ObjectWrap { */ virtual void Unref() { assert(!handle_.IsEmpty()); - assert(!handle_.IsWeak(node_isolate)); + assert(!handle_.IsWeak(v8::Isolate::GetCurrent())); assert(refs_ > 0); if (--refs_ == 0) { MakeWeak(); } } @@ -113,18 +114,18 @@ class NODE_EXTERN ObjectWrap { private: - static void WeakCallback(v8::Isolate* env, + static void WeakCallback(v8::Isolate* isolate, v8::Persistent value, void* data) { - v8::HandleScope scope(node_isolate); - + v8::HandleScope scope(isolate); ObjectWrap *obj = static_cast(data); assert(value == obj->handle_); assert(!obj->refs_); - assert(value.IsNearDeath(env)); + assert(value.IsNearDeath(isolate)); delete obj; } }; } // namespace node + #endif // object_wrap_h