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 /meta | |
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>
Diffstat (limited to 'meta')
-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" |