|
11 | 11 | info.GetReturnValue().Set(Nan::New(wrapper->{{ field.name }})); |
12 | 12 |
|
13 | 13 | {% elsif field.isCallbackFunction %} |
14 | | - if (wrapper->{{field.name}} != NULL) { |
15 | | - info.GetReturnValue().Set(wrapper->{{ field.name }}->GetFunction()); |
| 14 | + if (wrapper->{{field.name}}.HasCallback()) { |
| 15 | + info.GetReturnValue().Set(wrapper->{{ field.name }}.GetCallback()->GetFunction()); |
16 | 16 | } else { |
17 | 17 | info.GetReturnValue().SetUndefined(); |
18 | 18 | } |
|
47 | 47 | wrapper->raw->{{ field.name }} = {% if not field.cType | isPointer %}*{% endif %}{% if field.cppClassName == 'GitStrarray' %}StrArrayConverter::Convert({{ field.name }}->ToObject()){% else %}Nan::ObjectWrap::Unwrap<{{ field.cppClassName }}>({{ field.name }}->ToObject())->GetValue(){% endif %}; |
48 | 48 |
|
49 | 49 | {% elsif field.isCallbackFunction %} |
50 | | - if (wrapper->{{ field.name }} != NULL) { |
51 | | - delete wrapper->{{ field.name }}; |
52 | | - } |
53 | | - |
54 | 50 | if (value->IsFunction()) { |
55 | 51 | if (!wrapper->raw->{{ field.name }}) { |
56 | 52 | wrapper->raw->{{ field.name }} = ({{ field.cType }}){{ field.name }}_cppCallback; |
57 | 53 | } |
58 | 54 |
|
59 | | - wrapper->{{ field.name }} = new Nan::Callback(value.As<Function>()); |
| 55 | + wrapper->{{ field.name }}.SetCallback(new Nan::Callback(value.As<Function>())); |
60 | 56 | } |
61 | 57 |
|
62 | 58 | {% elsif field.payloadFor %} |
|
105 | 101 | {% if arg.payload == true %}{{arg.name}}{% elsif arg.lastArg %}{{arg.name}}{% endif %} |
106 | 102 | {% endeach %}); |
107 | 103 |
|
108 | | - if (instance->{{ field.name }}->IsEmpty()) { |
| 104 | + if (instance->{{ field.name }}.GetCallback()->IsEmpty()) { |
109 | 105 | {% if field.return.type == "int" %} |
110 | 106 | baton->result = baton->defaultResult; // no results acquired |
111 | 107 | {% endif %} |
|
149 | 145 | }; |
150 | 146 |
|
151 | 147 | Nan::TryCatch tryCatch; |
152 | | - Local<v8::Value> result = instance->{{ field.name }}->Call({{ field.args|jsArgsCount }}, argv); |
| 148 | + Local<v8::Value> result = instance->{{ field.name }}.GetCallback()->Call({{ field.args|jsArgsCount }}, argv); |
153 | 149 |
|
154 | 150 | uv_close((uv_handle_t*) &baton->req, NULL); |
155 | 151 |
|
|
0 commit comments