diff options
| author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2017-12-11 15:44:20 +1300 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-12-18 18:03:57 +0000 |
| commit | 4a9dc28fb44ba12df8d0f9f1242d44cbc407d581 (patch) | |
| tree | fe5ef3f3a6302376d7ba9d77e00a73635db55859 | |
| parent | 5a006997c8a856cd01e371cb3e5e9e76df02bff7 (diff) | |
| download | poky-4a9dc28fb44ba12df8d0f9f1242d44cbc407d581.tar.gz | |
swig: add patch to support Node.js 7+
Add a patch which has been submitted upstream to support producing
bindings for Node.js 7+. This is important to enable mraa to build with
newer Node.js versions.
Fixes [YOCTO #12293].
(From OE-Core rev: 1825473ba35b4557db99786420ca451068922223)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/recipes-devtools/swig/swig/0001-Add-Node-7.x-aka-V8-5.2-support.patch | 330 | ||||
| -rw-r--r-- | meta/recipes-devtools/swig/swig_3.0.12.bb | 1 |
2 files changed, 331 insertions, 0 deletions
diff --git a/meta/recipes-devtools/swig/swig/0001-Add-Node-7.x-aka-V8-5.2-support.patch b/meta/recipes-devtools/swig/swig/0001-Add-Node-7.x-aka-V8-5.2-support.patch new file mode 100644 index 0000000000..885c395614 --- /dev/null +++ b/meta/recipes-devtools/swig/swig/0001-Add-Node-7.x-aka-V8-5.2-support.patch | |||
| @@ -0,0 +1,330 @@ | |||
| 1 | From 1a5aadcd66e85c63d228bfd811a521d617c22a38 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Patrick Schneider <patrick.schneider@meetnow.eu> | ||
| 3 | Date: Thu, 13 Apr 2017 15:02:53 +0200 | ||
| 4 | Subject: [PATCH] Add Node 7.x aka V8 5.2+ support | ||
| 5 | |||
| 6 | * Use WeakCallbackInfo instead of WeakCallbackData | ||
| 7 | * Use GetPrivate instead of GetHiddenValue | ||
| 8 | * Adopted new signature for SetWeak to support destructor calling | ||
| 9 | * SetAccessor deprecation fixed | ||
| 10 | * Proper version checks where applicable | ||
| 11 | |||
| 12 | Upstream-Status: Submitted [https://github.com/swig/swig/pull/968] | ||
| 13 | |||
| 14 | Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> | ||
| 15 | --- | ||
| 16 | Lib/javascript/v8/javascriptcode.swg | 27 +++++++++++++++++----- | ||
| 17 | Lib/javascript/v8/javascripthelpers.swg | 29 +++++++++++++++++++++--- | ||
| 18 | Lib/javascript/v8/javascriptinit.swg | 16 +++++++++++-- | ||
| 19 | Lib/javascript/v8/javascriptrun.swg | 40 ++++++++++++++++++++++++++++----- | ||
| 20 | 4 files changed, 95 insertions(+), 17 deletions(-) | ||
| 21 | |||
| 22 | diff --git a/Lib/javascript/v8/javascriptcode.swg b/Lib/javascript/v8/javascriptcode.swg | ||
| 23 | index fb7d55c..b8c5089 100644 | ||
| 24 | --- a/Lib/javascript/v8/javascriptcode.swg | ||
| 25 | +++ b/Lib/javascript/v8/javascriptcode.swg | ||
| 26 | @@ -133,10 +133,13 @@ static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, v | ||
| 27 | SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter); | ||
| 28 | #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) | ||
| 29 | static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SWIGV8_Proxy *proxy) { | ||
| 30 | -#else | ||
| 31 | +#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 32 | static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) { | ||
| 33 | v8::Local<v8::Object> object = data.GetValue(); | ||
| 34 | SWIGV8_Proxy *proxy = data.GetParameter(); | ||
| 35 | +#else | ||
| 36 | + static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) { | ||
| 37 | + SWIGV8_Proxy *proxy = data.GetParameter(); | ||
| 38 | #endif | ||
| 39 | |||
| 40 | if(proxy->swigCMemOwn && proxy->swigCObject) { | ||
| 41 | @@ -147,7 +150,9 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat | ||
| 42 | } | ||
| 43 | delete proxy; | ||
| 44 | |||
| 45 | +#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 46 | object.Clear(); | ||
| 47 | +#endif | ||
| 48 | |||
| 49 | #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) | ||
| 50 | object.Dispose(); | ||
| 51 | @@ -155,7 +160,7 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat | ||
| 52 | object.Dispose(isolate); | ||
| 53 | #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032100) | ||
| 54 | object->Dispose(isolate); | ||
| 55 | -#else | ||
| 56 | +#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 57 | object->Dispose(); | ||
| 58 | #endif | ||
| 59 | } | ||
| 60 | @@ -177,10 +182,13 @@ static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, v | ||
| 61 | SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter); | ||
| 62 | #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) | ||
| 63 | static void $jswrapper(v8::Isolate *isolate, v8::Persistent< v8::Object> *object, SWIGV8_Proxy *proxy) { | ||
| 64 | -#else | ||
| 65 | +#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 66 | static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) { | ||
| 67 | v8::Local<v8::Object> object = data.GetValue(); | ||
| 68 | SWIGV8_Proxy *proxy = data.GetParameter(); | ||
| 69 | +#else | ||
| 70 | +static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) { | ||
| 71 | + SWIGV8_Proxy *proxy = data.GetParameter(); | ||
| 72 | #endif | ||
| 73 | |||
| 74 | if(proxy->swigCMemOwn && proxy->swigCObject) { | ||
| 75 | @@ -197,7 +205,7 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat | ||
| 76 | object->Dispose(isolate); | ||
| 77 | #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) | ||
| 78 | object->Dispose(); | ||
| 79 | -#else | ||
| 80 | +#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 81 | object.Clear(); | ||
| 82 | #endif | ||
| 83 | } | ||
| 84 | @@ -211,7 +219,11 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat | ||
| 85 | * ----------------------------------------------------------------------------- */ | ||
| 86 | %fragment("js_getter", "templates") | ||
| 87 | %{ | ||
| 88 | +#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 89 | static SwigV8ReturnValue $jswrapper(v8::Local<v8::String> property, const SwigV8PropertyCallbackInfo &info) { | ||
| 90 | +#else | ||
| 91 | +static SwigV8ReturnValue $jswrapper(v8::Local<v8::Name> property, const SwigV8PropertyCallbackInfo &info) { | ||
| 92 | +#endif | ||
| 93 | SWIGV8_HANDLESCOPE(); | ||
| 94 | |||
| 95 | v8::Handle<v8::Value> jsresult; | ||
| 96 | @@ -233,8 +245,11 @@ fail: | ||
| 97 | * ----------------------------------------------------------------------------- */ | ||
| 98 | %fragment("js_setter", "templates") | ||
| 99 | %{ | ||
| 100 | -static void $jswrapper(v8::Local<v8::String> property, v8::Local<v8::Value> value, | ||
| 101 | - const SwigV8PropertyCallbackInfoVoid &info) { | ||
| 102 | +#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 103 | +static void $jswrapper(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) { | ||
| 104 | +#else | ||
| 105 | +static void $jswrapper(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) { | ||
| 106 | +#endif | ||
| 107 | SWIGV8_HANDLESCOPE(); | ||
| 108 | |||
| 109 | $jslocals | ||
| 110 | diff --git a/Lib/javascript/v8/javascripthelpers.swg b/Lib/javascript/v8/javascripthelpers.swg | ||
| 111 | index 091467d..7461079 100644 | ||
| 112 | --- a/Lib/javascript/v8/javascripthelpers.swg | ||
| 113 | +++ b/Lib/javascript/v8/javascripthelpers.swg | ||
| 114 | @@ -6,11 +6,16 @@ typedef v8::InvocationCallback SwigV8FunctionCallback; | ||
| 115 | typedef v8::AccessorGetter SwigV8AccessorGetterCallback; | ||
| 116 | typedef v8::AccessorSetter SwigV8AccessorSetterCallback; | ||
| 117 | typedef v8::AccessorInfo SwigV8PropertyCallbackInfoVoid; | ||
| 118 | -#else | ||
| 119 | +#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 120 | typedef v8::FunctionCallback SwigV8FunctionCallback; | ||
| 121 | typedef v8::AccessorGetterCallback SwigV8AccessorGetterCallback; | ||
| 122 | typedef v8::AccessorSetterCallback SwigV8AccessorSetterCallback; | ||
| 123 | typedef v8::PropertyCallbackInfo<void> SwigV8PropertyCallbackInfoVoid; | ||
| 124 | +#else | ||
| 125 | +typedef v8::FunctionCallback SwigV8FunctionCallback; | ||
| 126 | +typedef v8::AccessorNameGetterCallback SwigV8AccessorGetterCallback; | ||
| 127 | +typedef v8::AccessorNameSetterCallback SwigV8AccessorSetterCallback; | ||
| 128 | +typedef v8::PropertyCallbackInfo<void> SwigV8PropertyCallbackInfoVoid; | ||
| 129 | #endif | ||
| 130 | |||
| 131 | /** | ||
| 132 | @@ -65,18 +70,36 @@ SWIGRUNTIME void SWIGV8_AddStaticFunction(v8::Handle<v8::Object> obj, const char | ||
| 133 | */ | ||
| 134 | SWIGRUNTIME void SWIGV8_AddStaticVariable(v8::Handle<v8::Object> obj, const char* symbol, | ||
| 135 | SwigV8AccessorGetterCallback getter, SwigV8AccessorSetterCallback setter) { | ||
| 136 | +#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 137 | obj->SetAccessor(SWIGV8_SYMBOL_NEW(symbol), getter, setter); | ||
| 138 | +#else | ||
| 139 | + obj->SetAccessor(SWIGV8_CURRENT_CONTEXT(), SWIGV8_SYMBOL_NEW(symbol), getter, setter); | ||
| 140 | +#endif | ||
| 141 | } | ||
| 142 | |||
| 143 | -SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::String> property, v8::Local<v8::Value> value, | ||
| 144 | - const SwigV8PropertyCallbackInfoVoid& info) | ||
| 145 | +#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 146 | +SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info) | ||
| 147 | +#else | ||
| 148 | +SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info) | ||
| 149 | +#endif | ||
| 150 | { | ||
| 151 | char buffer[256]; | ||
| 152 | char msg[512]; | ||
| 153 | int res; | ||
| 154 | |||
| 155 | +#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 156 | property->WriteUtf8(buffer, 256); | ||
| 157 | res = sprintf(msg, "Tried to write read-only variable: %s.", buffer); | ||
| 158 | +#else | ||
| 159 | + v8::Local<v8::String> sproperty; | ||
| 160 | + if (property->ToString(SWIGV8_CURRENT_CONTEXT()).ToLocal(&sproperty)) { | ||
| 161 | + sproperty->WriteUtf8(buffer, 256); | ||
| 162 | + res = sprintf(msg, "Tried to write read-only variable: %s.", buffer); | ||
| 163 | + } | ||
| 164 | + else { | ||
| 165 | + res = -1; | ||
| 166 | + } | ||
| 167 | +#endif | ||
| 168 | |||
| 169 | if(res<0) { | ||
| 170 | SWIG_exception(SWIG_ERROR, "Tried to write read-only variable."); | ||
| 171 | diff --git a/Lib/javascript/v8/javascriptinit.swg b/Lib/javascript/v8/javascriptinit.swg | ||
| 172 | index 34befa7..86008d9 100644 | ||
| 173 | --- a/Lib/javascript/v8/javascriptinit.swg | ||
| 174 | +++ b/Lib/javascript/v8/javascriptinit.swg | ||
| 175 | @@ -7,15 +7,27 @@ SWIG_V8_SetModule(void *, swig_module_info *swig_module) { | ||
| 176 | v8::Local<v8::Object> global_obj = SWIGV8_CURRENT_CONTEXT()->Global(); | ||
| 177 | v8::Local<v8::External> mod = SWIGV8_EXTERNAL_NEW(swig_module); | ||
| 178 | assert(!mod.IsEmpty()); | ||
| 179 | +#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 180 | global_obj->SetHiddenValue(SWIGV8_STRING_NEW("swig_module_info_data"), mod); | ||
| 181 | +#else | ||
| 182 | + v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data")); | ||
| 183 | + global_obj->SetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey, mod); | ||
| 184 | +#endif | ||
| 185 | } | ||
| 186 | |||
| 187 | SWIGRUNTIME swig_module_info * | ||
| 188 | SWIG_V8_GetModule(void *) { | ||
| 189 | v8::Local<v8::Object> global_obj = SWIGV8_CURRENT_CONTEXT()->Global(); | ||
| 190 | +#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 191 | v8::Local<v8::Value> moduleinfo = global_obj->GetHiddenValue(SWIGV8_STRING_NEW("swig_module_info_data")); | ||
| 192 | +#else | ||
| 193 | + v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data")); | ||
| 194 | + v8::Local<v8::Value> moduleinfo; | ||
| 195 | + if (!global_obj->GetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey).ToLocal(&moduleinfo)) | ||
| 196 | + return 0; | ||
| 197 | +#endif | ||
| 198 | |||
| 199 | - if (moduleinfo.IsEmpty()) | ||
| 200 | + if (moduleinfo.IsEmpty() || moduleinfo->IsNull() || moduleinfo->IsUndefined()) | ||
| 201 | { | ||
| 202 | // It's not yet loaded | ||
| 203 | return 0; | ||
| 204 | @@ -23,7 +35,7 @@ SWIG_V8_GetModule(void *) { | ||
| 205 | |||
| 206 | v8::Local<v8::External> moduleinfo_extern = v8::Local<v8::External>::Cast(moduleinfo); | ||
| 207 | |||
| 208 | - if (moduleinfo_extern.IsEmpty()) | ||
| 209 | + if (moduleinfo_extern.IsEmpty() || moduleinfo_extern->IsNull() || moduleinfo_extern->IsUndefined()) | ||
| 210 | { | ||
| 211 | // Something's not right | ||
| 212 | return 0; | ||
| 213 | diff --git a/Lib/javascript/v8/javascriptrun.swg b/Lib/javascript/v8/javascriptrun.swg | ||
| 214 | index 5ac52a5..30002c0 100644 | ||
| 215 | --- a/Lib/javascript/v8/javascriptrun.swg | ||
| 216 | +++ b/Lib/javascript/v8/javascriptrun.swg | ||
| 217 | @@ -193,8 +193,10 @@ public: | ||
| 218 | void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Value> object, void *parameter); | ||
| 219 | #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) | ||
| 220 | void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy); | ||
| 221 | -#else | ||
| 222 | +#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 223 | void (*dtor) (const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data); | ||
| 224 | +#else | ||
| 225 | + void (*dtor) (const v8::WeakCallbackInfo<SWIGV8_Proxy> &data); | ||
| 226 | #endif | ||
| 227 | }; | ||
| 228 | |||
| 229 | @@ -241,9 +243,12 @@ SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Val | ||
| 230 | SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter); | ||
| 231 | #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) | ||
| 232 | SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy) { | ||
| 233 | -#else | ||
| 234 | +#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 235 | SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) { | ||
| 236 | SWIGV8_Proxy *proxy = data.GetParameter(); | ||
| 237 | +#else | ||
| 238 | +SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) { | ||
| 239 | + SWIGV8_Proxy *proxy = data.GetParameter(); | ||
| 240 | #endif | ||
| 241 | |||
| 242 | delete proxy; | ||
| 243 | @@ -312,12 +317,18 @@ SWIGRUNTIME void SWIGV8_SetPrivateData(v8::Handle<v8::Object> obj, void *ptr, sw | ||
| 244 | } else { | ||
| 245 | cdata->handle.MakeWeak(cdata, SWIGV8_Proxy_DefaultDtor); | ||
| 246 | } | ||
| 247 | -#else | ||
| 248 | +#elifif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 249 | if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) { | ||
| 250 | cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor); | ||
| 251 | } else { | ||
| 252 | cdata->handle.SetWeak(cdata, SWIGV8_Proxy_DefaultDtor); | ||
| 253 | } | ||
| 254 | +#else | ||
| 255 | + if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) { | ||
| 256 | + cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor, v8::WeakCallbackType::kParameter); | ||
| 257 | + } else { | ||
| 258 | + cdata->handle.SetWeak(cdata, SWIGV8_Proxy_DefaultDtor, v8::WeakCallbackType::kParameter); | ||
| 259 | + } | ||
| 260 | #endif | ||
| 261 | |||
| 262 | #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) | ||
| 263 | @@ -470,7 +481,14 @@ int SwigV8Packed_Check(v8::Handle<v8::Value> valRef) { | ||
| 264 | |||
| 265 | v8::Handle<v8::Object> objRef = valRef->ToObject(); | ||
| 266 | if(objRef->InternalFieldCount() < 1) return false; | ||
| 267 | +#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 268 | v8::Handle<v8::Value> flag = objRef->GetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__")); | ||
| 269 | +#else | ||
| 270 | + v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__")); | ||
| 271 | + v8::Local<v8::Value> flag; | ||
| 272 | + if (!objRef->GetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey).ToLocal(&flag)) | ||
| 273 | + return false; | ||
| 274 | +#endif | ||
| 275 | return (flag->IsBoolean() && flag->BooleanValue()); | ||
| 276 | } | ||
| 277 | |||
| 278 | @@ -519,10 +537,13 @@ SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persist | ||
| 279 | SwigV8PackedData *cdata = static_cast<SwigV8PackedData *>(parameter); | ||
| 280 | #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) | ||
| 281 | SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SwigV8PackedData *cdata) { | ||
| 282 | -#else | ||
| 283 | +#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 284 | SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackData<v8::Object, SwigV8PackedData> &data) { | ||
| 285 | v8::Local<v8::Object> object = data.GetValue(); | ||
| 286 | SwigV8PackedData *cdata = data.GetParameter(); | ||
| 287 | +#else | ||
| 288 | +SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackInfo<SwigV8PackedData> &data) { | ||
| 289 | + SwigV8PackedData *cdata = data.GetParameter(); | ||
| 290 | #endif | ||
| 291 | |||
| 292 | delete cdata; | ||
| 293 | @@ -537,7 +558,7 @@ SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackData<v8::Ob | ||
| 294 | object->Dispose(isolate); | ||
| 295 | #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) | ||
| 296 | object->Dispose(); | ||
| 297 | -#else | ||
| 298 | +#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 299 | object.Clear(); | ||
| 300 | #endif | ||
| 301 | } | ||
| 302 | @@ -550,7 +571,12 @@ v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_inf | ||
| 303 | // v8::Handle<v8::Object> obj = SWIGV8_OBJECT_NEW(); | ||
| 304 | v8::Local<v8::Object> obj = SWIGV8_OBJECT_NEW(); | ||
| 305 | |||
| 306 | +#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 307 | obj->SetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__"), SWIGV8_BOOLEAN_NEW(true)); | ||
| 308 | +#else | ||
| 309 | + v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__")); | ||
| 310 | + obj->SetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey, SWIGV8_BOOLEAN_NEW(true)); | ||
| 311 | +#endif | ||
| 312 | |||
| 313 | #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031511) | ||
| 314 | obj->SetPointerInInternalField(0, cdata); | ||
| 315 | @@ -573,9 +599,11 @@ v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_inf | ||
| 316 | cdata->handle.MakeWeak(v8::Isolate::GetCurrent(), cdata, _wrap_SwigV8PackedData_delete); | ||
| 317 | #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) | ||
| 318 | cdata->handle.MakeWeak(cdata, _wrap_SwigV8PackedData_delete); | ||
| 319 | -#else | ||
| 320 | +#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) | ||
| 321 | cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete); | ||
| 322 | // v8::V8::SetWeak(&cdata->handle, cdata, _wrap_SwigV8PackedData_delete); | ||
| 323 | +#else | ||
| 324 | + cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete, v8::WeakCallbackType::kParameter); | ||
| 325 | #endif | ||
| 326 | |||
| 327 | #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) | ||
| 328 | -- | ||
| 329 | 2.9.5 | ||
| 330 | |||
diff --git a/meta/recipes-devtools/swig/swig_3.0.12.bb b/meta/recipes-devtools/swig/swig_3.0.12.bb index d5caa674b8..15f7348681 100644 --- a/meta/recipes-devtools/swig/swig_3.0.12.bb +++ b/meta/recipes-devtools/swig/swig_3.0.12.bb | |||
| @@ -2,6 +2,7 @@ require ${BPN}.inc | |||
| 2 | 2 | ||
| 3 | SRC_URI += "file://0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch \ | 3 | SRC_URI += "file://0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch \ |
| 4 | file://0001-configure-use-pkg-config-for-pcre-detection.patch \ | 4 | file://0001-configure-use-pkg-config-for-pcre-detection.patch \ |
| 5 | file://0001-Add-Node-7.x-aka-V8-5.2-support.patch \ | ||
| 5 | " | 6 | " |
| 6 | SRC_URI[md5sum] = "82133dfa7bba75ff9ad98a7046be687c" | 7 | SRC_URI[md5sum] = "82133dfa7bba75ff9ad98a7046be687c" |
| 7 | SRC_URI[sha256sum] = "7cf9f447ae7ed1c51722efc45e7f14418d15d7a1e143ac9f09a668999f4fc94d" | 8 | SRC_URI[sha256sum] = "7cf9f447ae7ed1c51722efc45e7f14418d15d7a1e143ac9f09a668999f4fc94d" |
