149 lines
4.6 KiB
Diff
149 lines
4.6 KiB
Diff
diff --git a/configure.ac b/configure.ac
|
|
index 5c37e481147466fd5a3a0a6b814f20fd2fe6bce8..5cedb4eca980f050fb5855ab577e93100adf8fec 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -79,7 +79,7 @@ PKG_CHECK_MODULES(GLIB, [gmodule-2.0 gio-unix-2.0 >= 2.30.0])
|
|
AC_SUBST(GLIB_CFLAGS)
|
|
AC_SUBST(GLIB_LIBS)
|
|
|
|
-PKG_CHECK_MODULES(LIBJS, [mozjs-52])
|
|
+PKG_CHECK_MODULES(LIBJS, [mozjs-60])
|
|
|
|
AC_SUBST(LIBJS_CFLAGS)
|
|
AC_SUBST(LIBJS_CXXFLAGS)
|
|
diff --git a/src/polkitbackend/polkitbackendjsauthority.cpp b/src/polkitbackend/polkitbackendjsauthority.cpp
|
|
index 76027149d4dfdc54064be48a3aeafeec8326a67b..984a0f0e579d51c09117f4e495b0c3fdc46fe61b 100644
|
|
--- a/src/polkitbackend/polkitbackendjsauthority.cpp
|
|
+++ b/src/polkitbackend/polkitbackendjsauthority.cpp
|
|
@@ -150,18 +150,17 @@ G_DEFINE_TYPE (PolkitBackendJsAuthority, polkit_backend_js_authority, POLKIT_BAC
|
|
/* ---------------------------------------------------------------------------------------------------- */
|
|
|
|
static const struct JSClassOps js_global_class_ops = {
|
|
- NULL,
|
|
- NULL,
|
|
- NULL,
|
|
- NULL,
|
|
- NULL,
|
|
- NULL,
|
|
- NULL,
|
|
- NULL,
|
|
- NULL,
|
|
- NULL,
|
|
- NULL,
|
|
- NULL
|
|
+ nullptr, // addProperty
|
|
+ nullptr, // deleteProperty
|
|
+ nullptr, // enumerate
|
|
+ nullptr, // newEnumerate
|
|
+ nullptr, // resolve
|
|
+ nullptr, // mayResolve
|
|
+ nullptr, // finalize
|
|
+ nullptr, // call
|
|
+ nullptr, // hasInstance
|
|
+ nullptr, // construct
|
|
+ JS_GlobalObjectTraceHook
|
|
};
|
|
|
|
static JSClass js_global_class = {
|
|
@@ -172,18 +171,17 @@ static JSClass js_global_class = {
|
|
|
|
/* ---------------------------------------------------------------------------------------------------- */
|
|
static const struct JSClassOps js_polkit_class_ops = {
|
|
- NULL,
|
|
- NULL,
|
|
- NULL,
|
|
- NULL,
|
|
- NULL,
|
|
- NULL,
|
|
- NULL,
|
|
- NULL,
|
|
- NULL,
|
|
- NULL,
|
|
- NULL,
|
|
- NULL
|
|
+ nullptr, // addProperty
|
|
+ nullptr, // deleteProperty
|
|
+ nullptr, // enumerate
|
|
+ nullptr, // newEnumerate
|
|
+ nullptr, // resolve
|
|
+ nullptr, // mayResolve
|
|
+ nullptr, // finalize
|
|
+ nullptr, // call
|
|
+ nullptr, // hasInstance
|
|
+ nullptr, // construct
|
|
+ nullptr // trace
|
|
};
|
|
|
|
static JSClass js_polkit_class = {
|
|
@@ -469,19 +467,18 @@ polkit_backend_js_authority_constructed (GObject *object)
|
|
|
|
{
|
|
JS::CompartmentOptions compart_opts;
|
|
- compart_opts.behaviors().setVersion(JSVERSION_LATEST);
|
|
+
|
|
JS::RootedObject global(authority->priv->cx);
|
|
|
|
authority->priv->js_global = new JS::Heap<JSObject*> (JS_NewGlobalObject (authority->priv->cx, &js_global_class, NULL, JS::FireOnNewGlobalHook, compart_opts));
|
|
|
|
global = authority->priv->js_global->get ();
|
|
-
|
|
- if (global == NULL)
|
|
+ if (!global)
|
|
goto fail;
|
|
|
|
authority->priv->ac = new JSAutoCompartment(authority->priv->cx, global);
|
|
|
|
- if (authority->priv->ac == NULL)
|
|
+ if (!authority->priv->ac)
|
|
goto fail;
|
|
|
|
if (!JS_InitStandardClasses (authority->priv->cx, global))
|
|
@@ -493,7 +490,7 @@ polkit_backend_js_authority_constructed (GObject *object)
|
|
|
|
polkit = authority->priv->js_polkit->get ();
|
|
|
|
- if (polkit == NULL)
|
|
+ if (!polkit)
|
|
goto fail;
|
|
|
|
if (!JS_DefineProperty(authority->priv->cx, global, "polkit", polkit, JSPROP_ENUMERATE))
|
|
@@ -504,7 +501,7 @@ polkit_backend_js_authority_constructed (GObject *object)
|
|
js_polkit_functions))
|
|
goto fail;
|
|
|
|
- JS::CompileOptions options(authority->priv->cx, JSVERSION_UNKNOWN);
|
|
+ JS::CompileOptions options(authority->priv->cx);
|
|
JS::RootedValue rval(authority->priv->cx);
|
|
if (!JS::Evaluate (authority->priv->cx,
|
|
options,
|
|
@@ -684,7 +681,9 @@ set_property_strv (PolkitBackendJsAuthority *authority,
|
|
JS::AutoValueVector elems(authority->priv->cx);
|
|
guint n;
|
|
|
|
- elems.resize(value->len);
|
|
+ if (!elems.resize(value->len))
|
|
+ g_error ("Unable to resize vector");
|
|
+
|
|
for (n = 0; n < value->len; n++)
|
|
{
|
|
const char *c_string = (const char *) g_ptr_array_index(value, n);
|
|
@@ -741,7 +740,7 @@ subject_to_jsval (PolkitBackendJsAuthority *authority,
|
|
GError **error)
|
|
{
|
|
gboolean ret = FALSE;
|
|
- JS::CompileOptions options(authority->priv->cx, JSVERSION_UNKNOWN);
|
|
+ JS::CompileOptions options(authority->priv->cx);
|
|
const char *src;
|
|
JS::RootedObject obj(authority->priv->cx);
|
|
pid_t pid;
|
|
@@ -868,7 +867,7 @@ action_and_details_to_jsval (PolkitBackendJsAuthority *authority,
|
|
GError **error)
|
|
{
|
|
gboolean ret = FALSE;
|
|
- JS::CompileOptions options(authority->priv->cx, JSVERSION_UNKNOWN);
|
|
+ JS::CompileOptions options(authority->priv->cx);
|
|
const char *src;
|
|
JS::RootedObject obj(authority->priv->cx);
|
|
gchar **keys;
|
|
|