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>
This commit is contained in:
parent
c3c2fbdf83
commit
8aed9d6610
18
src/node.cc
18
src/node.cc
@ -1687,23 +1687,21 @@ static const char* name_by_gid(gid_t gid) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static uid_t uid_by_name(Handle<Value> value) {
|
static uid_t uid_by_name(Isolate* isolate, Handle<Value> value) {
|
||||||
if (value->IsUint32()) {
|
if (value->IsUint32()) {
|
||||||
return static_cast<uid_t>(value->Uint32Value());
|
return static_cast<uid_t>(value->Uint32Value());
|
||||||
} else {
|
} else {
|
||||||
// TODO(trevnorris): Fix to not use GetCurrent().
|
node::Utf8Value name(isolate, value);
|
||||||
node::Utf8Value name(Isolate::GetCurrent(), value);
|
|
||||||
return uid_by_name(*name);
|
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()) {
|
if (value->IsUint32()) {
|
||||||
return static_cast<gid_t>(value->Uint32Value());
|
return static_cast<gid_t>(value->Uint32Value());
|
||||||
} else {
|
} else {
|
||||||
// TODO(trevnorris): Fix to not use GetCurrent().
|
node::Utf8Value name(isolate, value);
|
||||||
node::Utf8Value name(Isolate::GetCurrent(), value);
|
|
||||||
return gid_by_name(*name);
|
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");
|
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) {
|
if (gid == gid_not_found) {
|
||||||
return env->ThrowError("setgid group id does not exist");
|
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");
|
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) {
|
if (uid == uid_not_found) {
|
||||||
return env->ThrowError("setuid user id does not exist");
|
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];
|
gid_t* groups = new gid_t[size];
|
||||||
|
|
||||||
for (size_t i = 0; i < size; i++) {
|
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) {
|
if (gid == gid_not_found) {
|
||||||
delete[] groups;
|
delete[] groups;
|
||||||
@ -1856,7 +1854,7 @@ static void InitGroups(const FunctionCallbackInfo<Value>& args) {
|
|||||||
return env->ThrowError("initgroups user not found");
|
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 (extra_group == gid_not_found) {
|
||||||
if (must_free)
|
if (must_free)
|
||||||
|
@ -190,7 +190,7 @@ NODE_EXTERN void RunAtExit(Environment* env);
|
|||||||
// Used to be a macro, hence the uppercase name.
|
// Used to be a macro, hence the uppercase name.
|
||||||
#define NODE_DEFINE_CONSTANT(target, constant) \
|
#define NODE_DEFINE_CONSTANT(target, constant) \
|
||||||
do { \
|
do { \
|
||||||
v8::Isolate* isolate = v8::Isolate::GetCurrent(); \
|
v8::Isolate* isolate = target->GetIsolate(); \
|
||||||
v8::Local<v8::String> constant_name = \
|
v8::Local<v8::String> constant_name = \
|
||||||
v8::String::NewFromUtf8(isolate, #constant); \
|
v8::String::NewFromUtf8(isolate, #constant); \
|
||||||
v8::Local<v8::Number> constant_value = \
|
v8::Local<v8::Number> constant_value = \
|
||||||
|
@ -36,7 +36,7 @@ class ObjectWrap {
|
|||||||
|
|
||||||
|
|
||||||
inline v8::Local<v8::Object> handle() {
|
inline v8::Local<v8::Object> handle() {
|
||||||
return handle(v8::Isolate::GetCurrent());
|
return v8::Local<v8::Object>::New(handle_->GetIsolate(), persistent());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -472,8 +472,7 @@ const char RetainedAllocInfo::label_[] = "smalloc";
|
|||||||
|
|
||||||
|
|
||||||
RetainedAllocInfo::RetainedAllocInfo(Handle<Value> wrapper) {
|
RetainedAllocInfo::RetainedAllocInfo(Handle<Value> wrapper) {
|
||||||
// TODO(trevnorris): Fix to properly acquire the Isolate.
|
Local<Object> obj = wrapper.As<Object>();
|
||||||
Local<Object> obj = wrapper->ToObject(Isolate::GetCurrent());
|
|
||||||
length_ = obj->GetIndexedPropertiesExternalArrayDataLength();
|
length_ = obj->GetIndexedPropertiesExternalArrayDataLength();
|
||||||
data_ = static_cast<char*>(obj->GetIndexedPropertiesExternalArrayData());
|
data_ = static_cast<char*>(obj->GetIndexedPropertiesExternalArrayData());
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user