summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Kurchatkin <vladimir.kurchatkin@gmail.com>2015-02-06 20:48:14 +0300
committerTrevor Norris <trev.norris@gmail.com>2015-02-11 13:45:59 -0700
commit8aed9d661062ad19d5dd0dfdb53278e0d134854f (patch)
tree80b2749e33b4a76eade94a96df674b2ec72c1819
parentc3c2fbdf83265fe9b6f1d620c974d72605ecf7c2 (diff)
downloadandroid-node-v8-8aed9d661062ad19d5dd0dfdb53278e0d134854f.tar.gz
android-node-v8-8aed9d661062ad19d5dd0dfdb53278e0d134854f.tar.bz2
android-node-v8-8aed9d661062ad19d5dd0dfdb53278e0d134854f.zip
src: cleanup `Isolate::GetCurrent()`
PR-URL: https://github.com/iojs/io.js/pull/807 Reviewed-by: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-by: Trevor Norris <trev.norris@gmail.com>
-rw-r--r--src/node.cc18
-rw-r--r--src/node.h2
-rw-r--r--src/node_object_wrap.h2
-rw-r--r--src/smalloc.cc3
4 files changed, 11 insertions, 14 deletions
diff --git a/src/node.cc b/src/node.cc
index fd65fbff0b..c8299f9a36 100644
--- a/src/node.cc
+++ b/src/node.cc
@@ -1687,23 +1687,21 @@ static const char* name_by_gid(gid_t gid) {
#endif
-static uid_t uid_by_name(Handle<Value> value) {
+static uid_t uid_by_name(Isolate* isolate, Handle<Value> value) {
if (value->IsUint32()) {
return static_cast<uid_t>(value->Uint32Value());
} else {
- // TODO(trevnorris): Fix to not use GetCurrent().
- node::Utf8Value name(Isolate::GetCurrent(), value);
+ node::Utf8Value name(isolate, value);
return uid_by_name(*name);
}
}
-static gid_t gid_by_name(Handle<Value> value) {
+static gid_t gid_by_name(Isolate* isolate, Handle<Value> value) {
if (value->IsUint32()) {
return static_cast<gid_t>(value->Uint32Value());
} else {
- // TODO(trevnorris): Fix to not use GetCurrent().
- node::Utf8Value name(Isolate::GetCurrent(), value);
+ node::Utf8Value name(isolate, value);
return gid_by_name(*name);
}
}
@@ -1728,7 +1726,7 @@ static void SetGid(const FunctionCallbackInfo<Value>& args) {
return env->ThrowTypeError("setgid argument must be a number or a string");
}
- gid_t gid = gid_by_name(args[0]);
+ gid_t gid = gid_by_name(env->isolate(), args[0]);
if (gid == gid_not_found) {
return env->ThrowError("setgid group id does not exist");
@@ -1747,7 +1745,7 @@ static void SetUid(const FunctionCallbackInfo<Value>& args) {
return env->ThrowTypeError("setuid argument must be a number or a string");
}
- uid_t uid = uid_by_name(args[0]);
+ uid_t uid = uid_by_name(env->isolate(), args[0]);
if (uid == uid_not_found) {
return env->ThrowError("setuid user id does not exist");
@@ -1809,7 +1807,7 @@ static void SetGroups(const FunctionCallbackInfo<Value>& args) {
gid_t* groups = new gid_t[size];
for (size_t i = 0; i < size; i++) {
- gid_t gid = gid_by_name(groups_list->Get(i));
+ gid_t gid = gid_by_name(env->isolate(), groups_list->Get(i));
if (gid == gid_not_found) {
delete[] groups;
@@ -1856,7 +1854,7 @@ static void InitGroups(const FunctionCallbackInfo<Value>& args) {
return env->ThrowError("initgroups user not found");
}
- extra_group = gid_by_name(args[1]);
+ extra_group = gid_by_name(env->isolate(), args[1]);
if (extra_group == gid_not_found) {
if (must_free)
diff --git a/src/node.h b/src/node.h
index 097441e107..4787783b68 100644
--- a/src/node.h
+++ b/src/node.h
@@ -190,7 +190,7 @@ NODE_EXTERN void RunAtExit(Environment* env);
// Used to be a macro, hence the uppercase name.
#define NODE_DEFINE_CONSTANT(target, constant) \
do { \
- v8::Isolate* isolate = v8::Isolate::GetCurrent(); \
+ v8::Isolate* isolate = target->GetIsolate(); \
v8::Local<v8::String> constant_name = \
v8::String::NewFromUtf8(isolate, #constant); \
v8::Local<v8::Number> constant_value = \
diff --git a/src/node_object_wrap.h b/src/node_object_wrap.h
index d00e1484b7..93c73a0575 100644
--- a/src/node_object_wrap.h
+++ b/src/node_object_wrap.h
@@ -36,7 +36,7 @@ class ObjectWrap {
inline v8::Local<v8::Object> handle() {
- return handle(v8::Isolate::GetCurrent());
+ return v8::Local<v8::Object>::New(handle_->GetIsolate(), persistent());
}
diff --git a/src/smalloc.cc b/src/smalloc.cc
index ad2ae3c29f..eda13c7e45 100644
--- a/src/smalloc.cc
+++ b/src/smalloc.cc
@@ -472,8 +472,7 @@ const char RetainedAllocInfo::label_[] = "smalloc";
RetainedAllocInfo::RetainedAllocInfo(Handle<Value> wrapper) {
- // TODO(trevnorris): Fix to properly acquire the Isolate.
- Local<Object> obj = wrapper->ToObject(Isolate::GetCurrent());
+ Local<Object> obj = wrapper.As<Object>();
length_ = obj->GetIndexedPropertiesExternalArrayDataLength();
data_ = static_cast<char*>(obj->GetIndexedPropertiesExternalArrayData());
}