Skip to content

Commit f7c8d4d

Browse files
committed
Pass Holder instead of This to ObjectWrap::Unwrap
This is neccessary on Node 0.10.40 at least, where the Signature is not sufficient to ensure that This is actually an instance created from the instance template of this ObjectWrap-derived class.
1 parent 8dc157b commit f7c8d4d

File tree

7 files changed

+21
-21
lines changed

7 files changed

+21
-21
lines changed

doc/object_wrappers.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,12 +93,12 @@ class MyObject : public Nan::ObjectWrap {
9393
}
9494
9595
static NAN_METHOD(GetHandle) {
96-
MyObject* obj = Nan::ObjectWrap::Unwrap<MyObject>(info.This());
96+
MyObject* obj = Nan::ObjectWrap::Unwrap<MyObject>(info.Holder());
9797
info.GetReturnValue().Set(obj->handle());
9898
}
9999
100100
static NAN_METHOD(GetValue) {
101-
MyObject* obj = Nan::ObjectWrap::Unwrap<MyObject>(info.This());
101+
MyObject* obj = Nan::ObjectWrap::Unwrap<MyObject>(info.Holder());
102102
info.GetReturnValue().Set(obj->value_);
103103
}
104104
@@ -168,7 +168,7 @@ class MyFactoryObject : public Nan::ObjectWrap {
168168
}
169169

170170
static NAN_METHOD(GetValue) {
171-
MyFactoryObject* obj = ObjectWrap::Unwrap<MyFactoryObject>(info.This());
171+
MyFactoryObject* obj = ObjectWrap::Unwrap<MyFactoryObject>(info.Holder());
172172
info.GetReturnValue().Set(obj->value_);
173173
}
174174

test/cpp/accessors.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ NAN_METHOD(SetterGetter::New) {
8888

8989
NAN_GETTER(SetterGetter::GetProp1) {
9090
SetterGetter* settergetter =
91-
ObjectWrap::Unwrap<SetterGetter>(info.This());
91+
ObjectWrap::Unwrap<SetterGetter>(info.Holder());
9292
assert(strlen(settergetter->log) < sizeof (settergetter->log));
9393
strncat(
9494
settergetter->log
@@ -110,7 +110,7 @@ NAN_GETTER(SetterGetter::GetProp1) {
110110

111111
NAN_GETTER(SetterGetter::GetProp2) {
112112
SetterGetter* settergetter =
113-
ObjectWrap::Unwrap<SetterGetter>(info.This());
113+
ObjectWrap::Unwrap<SetterGetter>(info.Holder());
114114
assert(strlen(settergetter->log) < sizeof (settergetter->log));
115115
strncat(
116116
settergetter->log
@@ -132,7 +132,7 @@ NAN_GETTER(SetterGetter::GetProp2) {
132132

133133
NAN_SETTER(SetterGetter::SetProp2) {
134134
SetterGetter* settergetter =
135-
ObjectWrap::Unwrap<SetterGetter>(info.This());
135+
ObjectWrap::Unwrap<SetterGetter>(info.Holder());
136136
strncpy(
137137
settergetter->prop2
138138
, *Utf8String(value)
@@ -157,7 +157,7 @@ NAN_SETTER(SetterGetter::SetProp2) {
157157

158158
NAN_METHOD(SetterGetter::Log) {
159159
SetterGetter* settergetter =
160-
ObjectWrap::Unwrap<SetterGetter>(info.This());
160+
ObjectWrap::Unwrap<SetterGetter>(info.Holder());
161161

162162
info.GetReturnValue().Set(Nan::New(settergetter->log).ToLocalChecked());
163163
}

test/cpp/accessors2.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ NAN_METHOD(SetterGetter::New) {
8686

8787
NAN_GETTER(SetterGetter::GetProp1) {
8888
SetterGetter* settergetter =
89-
ObjectWrap::Unwrap<SetterGetter>(info.This());
89+
ObjectWrap::Unwrap<SetterGetter>(info.Holder());
9090
assert(strlen(settergetter->log) < sizeof (settergetter->log));
9191
strncat(
9292
settergetter->log
@@ -108,7 +108,7 @@ NAN_GETTER(SetterGetter::GetProp1) {
108108

109109
NAN_GETTER(SetterGetter::GetProp2) {
110110
SetterGetter* settergetter =
111-
ObjectWrap::Unwrap<SetterGetter>(info.This());
111+
ObjectWrap::Unwrap<SetterGetter>(info.Holder());
112112
assert(strlen(settergetter->log) < sizeof (settergetter->log));
113113
strncat(
114114
settergetter->log
@@ -130,7 +130,7 @@ NAN_GETTER(SetterGetter::GetProp2) {
130130

131131
NAN_SETTER(SetterGetter::SetProp2) {
132132
SetterGetter* settergetter =
133-
ObjectWrap::Unwrap<SetterGetter>(info.This());
133+
ObjectWrap::Unwrap<SetterGetter>(info.Holder());
134134
strncpy(
135135
settergetter->prop2
136136
, *v8::String::Utf8Value(value)
@@ -155,7 +155,7 @@ NAN_SETTER(SetterGetter::SetProp2) {
155155

156156
NAN_METHOD(SetterGetter::Log) {
157157
SetterGetter* settergetter =
158-
ObjectWrap::Unwrap<SetterGetter>(info.This());
158+
ObjectWrap::Unwrap<SetterGetter>(info.Holder());
159159

160160
info.GetReturnValue().Set(Nan::New(settergetter->log).ToLocalChecked());
161161
}

test/cpp/indexedinterceptors.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ NAN_METHOD(IndexedInterceptor::New) {
7272

7373
NAN_INDEX_GETTER(IndexedInterceptor::PropertyGetter) {
7474
IndexedInterceptor* interceptor =
75-
ObjectWrap::Unwrap<IndexedInterceptor>(info.This());
75+
ObjectWrap::Unwrap<IndexedInterceptor>(info.Holder());
7676
if (index == 0) {
7777
info.GetReturnValue().Set(Nan::New(interceptor->buf).ToLocalChecked());
7878
} else {
@@ -82,7 +82,7 @@ NAN_INDEX_GETTER(IndexedInterceptor::PropertyGetter) {
8282

8383
NAN_INDEX_SETTER(IndexedInterceptor::PropertySetter) {
8484
IndexedInterceptor* interceptor =
85-
ObjectWrap::Unwrap<IndexedInterceptor>(info.This());
85+
ObjectWrap::Unwrap<IndexedInterceptor>(info.Holder());
8686
if (index == 0) {
8787
std::strncpy(
8888
interceptor->buf
@@ -102,7 +102,7 @@ NAN_INDEX_ENUMERATOR(IndexedInterceptor::PropertyEnumerator) {
102102

103103
NAN_INDEX_DELETER(IndexedInterceptor::PropertyDeleter) {
104104
IndexedInterceptor* interceptor =
105-
ObjectWrap::Unwrap<IndexedInterceptor>(info.This());
105+
ObjectWrap::Unwrap<IndexedInterceptor>(info.Holder());
106106
std::strncpy(interceptor->buf, "goober", sizeof (interceptor->buf));
107107
info.GetReturnValue().Set(True());
108108
}

test/cpp/namedinterceptors.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ NAN_METHOD(NamedInterceptor::New) {
7272

7373
NAN_PROPERTY_GETTER(NamedInterceptor::PropertyGetter) {
7474
NamedInterceptor* interceptor =
75-
ObjectWrap::Unwrap<NamedInterceptor>(info.This());
75+
ObjectWrap::Unwrap<NamedInterceptor>(info.Holder());
7676
if (!std::strcmp(*v8::String::Utf8Value(property), "prop")) {
7777
info.GetReturnValue().Set(Nan::New(interceptor->buf).ToLocalChecked());
7878
} else {
@@ -82,7 +82,7 @@ NAN_PROPERTY_GETTER(NamedInterceptor::PropertyGetter) {
8282

8383
NAN_PROPERTY_SETTER(NamedInterceptor::PropertySetter) {
8484
NamedInterceptor* interceptor =
85-
ObjectWrap::Unwrap<NamedInterceptor>(info.This());
85+
ObjectWrap::Unwrap<NamedInterceptor>(info.Holder());
8686
if (!std::strcmp(*v8::String::Utf8Value(property), "prop")) {
8787
std::strncpy(
8888
interceptor->buf
@@ -102,7 +102,7 @@ NAN_PROPERTY_ENUMERATOR(NamedInterceptor::PropertyEnumerator) {
102102

103103
NAN_PROPERTY_DELETER(NamedInterceptor::PropertyDeleter) {
104104
NamedInterceptor* interceptor =
105-
ObjectWrap::Unwrap<NamedInterceptor>(info.This());
105+
ObjectWrap::Unwrap<NamedInterceptor>(info.Holder());
106106
std::strncpy(interceptor->buf, "goober", sizeof (interceptor->buf));
107107
info.GetReturnValue().Set(True());
108108
}

test/cpp/objectwraphandle.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,12 @@ class MyObject : public ObjectWrap {
4545
}
4646

4747
static NAN_METHOD(GetHandle) {
48-
MyObject* obj = ObjectWrap::Unwrap<MyObject>(info.This());
48+
MyObject* obj = ObjectWrap::Unwrap<MyObject>(info.Holder());
4949
info.GetReturnValue().Set(obj->handle());
5050
}
5151

5252
static NAN_METHOD(GetValue) {
53-
MyObject* obj = ObjectWrap::Unwrap<MyObject>(info.This());
53+
MyObject* obj = ObjectWrap::Unwrap<MyObject>(info.Holder());
5454
info.GetReturnValue().Set(obj->value_);
5555
}
5656

test/cpp/wrappedobjectfactory.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class InnerObject : public ObjectWrap {
4949
}
5050

5151
static NAN_METHOD(GetValue) {
52-
InnerObject* obj = ObjectWrap::Unwrap<InnerObject>(info.This());
52+
InnerObject* obj = ObjectWrap::Unwrap<InnerObject>(info.Holder());
5353
info.GetReturnValue().Set(obj->value_);
5454
}
5555

@@ -102,7 +102,7 @@ class MyObject : public ObjectWrap {
102102
}
103103

104104
static NAN_METHOD(GetValue) {
105-
MyObject* obj = ObjectWrap::Unwrap<MyObject>(info.This());
105+
MyObject* obj = ObjectWrap::Unwrap<MyObject>(info.Holder());
106106
info.GetReturnValue().Set(obj->value_);
107107
}
108108

0 commit comments

Comments
 (0)