Lines 183-188
Link Here
|
183 |
static JSBool (*dJS_StrictPropertyStub)(JSContext *cx, JSObject *obj, jsid id, JSBool strict, jsval *vp); |
183 |
static JSBool (*dJS_StrictPropertyStub)(JSContext *cx, JSObject *obj, jsid id, JSBool strict, jsval *vp); |
184 |
static void (*dJS_TriggerOperationCallback)(JSContext *cx); |
184 |
static void (*dJS_TriggerOperationCallback)(JSContext *cx); |
185 |
|
185 |
|
|
|
186 |
static JS_PUBLIC_DATA(jsval) *dJSVAL_NULL; |
187 |
static JS_PUBLIC_DATA(jsval) *dJSVAL_ZERO; |
188 |
static JS_PUBLIC_DATA(jsval) *dJSVAL_ONE; |
189 |
static JS_PUBLIC_DATA(jsval) *dJSVAL_FALSE; |
190 |
static JS_PUBLIC_DATA(jsval) *dJSVAL_TRUE; |
191 |
static JS_PUBLIC_DATA(jsval) *dJSVAL_VOID; |
192 |
|
186 |
#define DJS_SYMBOL(x) {#x, (void*) &d ## x} |
193 |
#define DJS_SYMBOL(x) {#x, (void*) &d ## x} |
187 |
static const struct { |
194 |
static const struct { |
188 |
const char *name; |
195 |
const char *name; |
Lines 228-235
Link Here
|
228 |
DJS_SYMBOL(JS_ShutDown), |
235 |
DJS_SYMBOL(JS_ShutDown), |
229 |
DJS_SYMBOL(JS_StrictPropertyStub), |
236 |
DJS_SYMBOL(JS_StrictPropertyStub), |
230 |
DJS_SYMBOL(JS_TriggerOperationCallback), |
237 |
DJS_SYMBOL(JS_TriggerOperationCallback), |
|
|
238 |
|
239 |
// Fetch global variable symbols |
240 |
DJS_SYMBOL(JSVAL_NULL), |
241 |
DJS_SYMBOL(JSVAL_ZERO), |
242 |
DJS_SYMBOL(JSVAL_ONE), |
243 |
DJS_SYMBOL(JSVAL_FALSE), |
244 |
DJS_SYMBOL(JSVAL_TRUE), |
245 |
DJS_SYMBOL(JSVAL_VOID), |
231 |
}; |
246 |
}; |
232 |
|
247 |
|
|
|
248 |
// Ugly hack to make it use *dJSVAL_NULL instead of JSVAL_NULL directly |
249 |
static JS_ALWAYS_INLINE jsval |
250 |
dOBJECT_TO_JSVAL(JSObject *obj) |
251 |
{ |
252 |
if (obj) |
253 |
return IMPL_TO_JSVAL(OBJECT_TO_JSVAL_IMPL(obj)); |
254 |
return *dJSVAL_NULL; |
255 |
} |
256 |
|
233 |
static gboolean |
257 |
static gboolean |
234 |
djs_init (PolkitBackendJsAuthority *authority) |
258 |
djs_init (PolkitBackendJsAuthority *authority) |
235 |
{ |
259 |
{ |
Lines 238-244
Link Here
|
238 |
guint n; |
262 |
guint n; |
239 |
const gchar *library_name; |
263 |
const gchar *library_name; |
240 |
|
264 |
|
241 |
library_name = "libmozjs185.so.1.0"; |
265 |
library_name = "libmozjs187.so.1.0"; |
242 |
module = g_module_open (library_name, 0); |
266 |
module = g_module_open (library_name, 0); |
243 |
if (module == NULL) |
267 |
if (module == NULL) |
244 |
goto out; |
268 |
goto out; |
Lines 790-796
Link Here
|
790 |
|
814 |
|
791 |
array_object = dJS_NewArrayObject (authority->priv->cx, (jsint) len, jsvals); |
815 |
array_object = dJS_NewArrayObject (authority->priv->cx, (jsint) len, jsvals); |
792 |
|
816 |
|
793 |
value_jsval = OBJECT_TO_JSVAL (array_object); |
817 |
value_jsval = dOBJECT_TO_JSVAL (array_object); |
794 |
dJS_SetProperty (authority->priv->cx, obj, name, &value_jsval); |
818 |
dJS_SetProperty (authority->priv->cx, obj, name, &value_jsval); |
795 |
|
819 |
|
796 |
g_free (jsvals); |
820 |
g_free (jsvals); |
Lines 1368-1374
Link Here
|
1368 |
|
1392 |
|
1369 |
ret = JS_TRUE; |
1393 |
ret = JS_TRUE; |
1370 |
|
1394 |
|
1371 |
JS_SET_RVAL (cx, vp, JSVAL_VOID); /* return undefined */ |
1395 |
JS_SET_RVAL (cx, vp, *dJSVAL_VOID); /* return undefined */ |
1372 |
out: |
1396 |
out: |
1373 |
return ret; |
1397 |
return ret; |
1374 |
} |
1398 |
} |