[PATCH 4/4] Fix warnings caused by building with C++

Jeremy Linton jeremy.linton at arm.com
Thu Aug 4 16:57:50 UTC 2016


C++ needs explicit casts for many pointer type conversions
For example char * to void * should have a cast. Fix a
number of these cases. Also, scope initializations of C++
objects that are jumped around with goto's so the compiler
can determine when to destroy the objects.

Signed-off-by: Jeremy Linton <jeremy.linton at arm.com>
---
 src/polkitbackend/Makefile.am                  |   2 +-
 src/polkitbackend/polkitbackendjsauthority.cpp | 173 +++++++++++++------------
 2 files changed, 92 insertions(+), 83 deletions(-)

diff --git a/src/polkitbackend/Makefile.am b/src/polkitbackend/Makefile.am
index 5655d17..ca62474 100644
--- a/src/polkitbackend/Makefile.am
+++ b/src/polkitbackend/Makefile.am
@@ -53,7 +53,7 @@ libpolkit_backend_1_la_CFLAGS =                                        	\
 	$(LIBJS_CFLAGS)							\
         $(NULL)
 
-libpolkit_backend_1_la_CXXFLAGS = $(libpolkit_backend_1_la_CFLAGS) -fpermissive
+libpolkit_backend_1_la_CXXFLAGS = $(libpolkit_backend_1_la_CFLAGS)
 
 libpolkit_backend_1_la_LIBADD =                               		\
         $(GLIB_LIBS)							\
diff --git a/src/polkitbackend/polkitbackendjsauthority.cpp b/src/polkitbackend/polkitbackendjsauthority.cpp
index e16f7e1..1abfb6e 100644
--- a/src/polkitbackend/polkitbackendjsauthority.cpp
+++ b/src/polkitbackend/polkitbackendjsauthority.cpp
@@ -157,7 +157,11 @@ static JSClass js_global_class = {
   "global",
   JSCLASS_GLOBAL_FLAGS,
   JS_PropertyStub,
+#if JS_VERSION2 == 24
+  JS_DeletePropertyStub,
+#else
   JS_PropertyStub,
+#endif
   JS_PropertyStub,
   JS_StrictPropertyStub,
   JS_EnumerateStub,
@@ -177,7 +181,11 @@ static JSClass js_polkit_class = {
   "Polkit",
   0,
   JS_PropertyStub,
+#if JS_VERSION2 == 24
+  JS_DeletePropertyStub,
+#else
   JS_PropertyStub,
+#endif
   JS_PropertyStub,
   JS_StrictPropertyStub,
   JS_EnumerateStub,
@@ -299,7 +307,7 @@ load_scripts (PolkitBackendJsAuthority  *authority)
 
   for (l = files; l != NULL; l = l->next)
     {
-      const gchar *filename = l->data;
+      const gchar *filename = (gchar *)l->data;
 #if JS_VERSION2 == 24
       JS::RootedScript script(authority->priv->cx);
       JSString * str = JS_NewStringCopyZ(authority->priv->cx, filename);
@@ -502,79 +510,80 @@ polkit_backend_js_authority_constructed (GObject *object)
   JS_BeginRequest(authority->priv->cx);
   entered_request = TRUE;
 
-
+  {
 #if JS_VERSION == 186
-  authority->priv->js_global = JS_NewGlobalObject (authority->priv->cx, &js_global_class, NULL);
+    authority->priv->js_global = JS_NewGlobalObject (authority->priv->cx, &js_global_class, NULL);
 #elif JS_VERSION2 == 24
-  JS::CompartmentOptions compart_opts;
-  compart_opts.setVersion(JSVERSION_LATEST);
-  authority->priv->js_global = JS_NewGlobalObject (authority->priv->cx, &js_global_class, NULL, compart_opts);
-  JSAutoCompartment ac(authority->priv->cx,  authority->priv->js_global);
+    JS::CompartmentOptions compart_opts;
+    compart_opts.setVersion(JSVERSION_LATEST);
+    authority->priv->js_global = JS_NewGlobalObject (authority->priv->cx, &js_global_class, NULL, compart_opts);
+    JSAutoCompartment ac(authority->priv->cx,  authority->priv->js_global);
 #else
-  authority->priv->js_global = JS_NewCompartmentAndGlobalObject (authority->priv->cx, &js_global_class, NULL);
+    authority->priv->js_global = JS_NewCompartmentAndGlobalObject (authority->priv->cx, &js_global_class, NULL);
 #endif
 
 
-  if (authority->priv->js_global == NULL)
-    goto fail;
-  JS_AddObjectRoot (authority->priv->cx, &authority->priv->js_global);
-
-  if (!JS_InitStandardClasses (authority->priv->cx, authority->priv->js_global))
-    goto fail;
-
-  authority->priv->js_polkit = JS_DefineObject (authority->priv->cx,
-                                                authority->priv->js_global,
-                                                "polkit",
-                                                &js_polkit_class,
-                                                NULL,
-                                                JSPROP_ENUMERATE);
-  if (authority->priv->js_polkit == NULL)
-    goto fail;
-  JS_AddObjectRoot (authority->priv->cx, &authority->priv->js_polkit);
-
-  if (!JS_DefineFunctions (authority->priv->cx,
-                           authority->priv->js_polkit,
-                           js_polkit_functions))
-    goto fail;
-
-  if (!JS_EvaluateScript (authority->priv->cx,
-                          authority->priv->js_global,
-                          init_js, strlen (init_js), /* init.js */
-                          "init.js",  /* filename */
-                          0,     /* lineno */
-                          NULL)) /* rval */
-    {
-      goto fail;
-    }
-
-  if (authority->priv->rules_dirs == NULL)
-    {
-      authority->priv->rules_dirs = g_new0 (gchar *, 3);
-      authority->priv->rules_dirs[0] = g_strdup (PACKAGE_SYSCONF_DIR "/polkit-1/rules.d");
-      authority->priv->rules_dirs[1] = g_strdup (PACKAGE_DATA_DIR "/polkit-1/rules.d");
-    }
-
-  g_mutex_init (&authority->priv->rkt_init_mutex);
-  g_cond_init (&authority->priv->rkt_init_cond);
-  g_mutex_init (&authority->priv->rkt_timeout_pending_mutex);
-
-  authority->priv->runaway_killer_thread = g_thread_new ("runaway-killer-thread",
-                                                         runaway_killer_thread_func,
-                                                         authority);
-
-  /* wait for runaway_killer_thread to set up its GMainContext */
-  g_mutex_lock (&authority->priv->rkt_init_mutex);
-  while (authority->priv->rkt_context == NULL)
-    g_cond_wait (&authority->priv->rkt_init_cond, &authority->priv->rkt_init_mutex);
-  g_mutex_unlock (&authority->priv->rkt_init_mutex);
-
-  setup_file_monitors (authority);
-  load_scripts (authority);
-
-  JS_EndRequest (authority->priv->cx);
-  entered_request = FALSE;
-
-  G_OBJECT_CLASS (polkit_backend_js_authority_parent_class)->constructed (object);
+	if (authority->priv->js_global == NULL)
+	  goto fail;
+	JS_AddObjectRoot (authority->priv->cx, &authority->priv->js_global);
+
+	if (!JS_InitStandardClasses (authority->priv->cx, authority->priv->js_global))
+	  goto fail;
+
+	authority->priv->js_polkit = JS_DefineObject (authority->priv->cx,
+												  authority->priv->js_global,
+												  "polkit",
+												  &js_polkit_class,
+												  NULL,
+												  JSPROP_ENUMERATE);
+	if (authority->priv->js_polkit == NULL)
+	  goto fail;
+	JS_AddObjectRoot (authority->priv->cx, &authority->priv->js_polkit);
+
+	if (!JS_DefineFunctions (authority->priv->cx,
+							 authority->priv->js_polkit,
+							 js_polkit_functions))
+	  goto fail;
+
+	if (!JS_EvaluateScript (authority->priv->cx,
+							authority->priv->js_global,
+							init_js, strlen (init_js), /* init.js */
+							"init.js",  /* filename */
+							0,     /* lineno */
+							NULL)) /* rval */
+	  {
+		goto fail;
+	  }
+
+	if (authority->priv->rules_dirs == NULL)
+	  {
+		authority->priv->rules_dirs = g_new0 (gchar *, 3);
+		authority->priv->rules_dirs[0] = g_strdup (PACKAGE_SYSCONF_DIR "/polkit-1/rules.d");
+		authority->priv->rules_dirs[1] = g_strdup (PACKAGE_DATA_DIR "/polkit-1/rules.d");
+	  }
+
+	g_mutex_init (&authority->priv->rkt_init_mutex);
+	g_cond_init (&authority->priv->rkt_init_cond);
+	g_mutex_init (&authority->priv->rkt_timeout_pending_mutex);
+
+	authority->priv->runaway_killer_thread = g_thread_new ("runaway-killer-thread",
+														   runaway_killer_thread_func,
+														   authority);
+
+	/* wait for runaway_killer_thread to set up its GMainContext */
+	g_mutex_lock (&authority->priv->rkt_init_mutex);
+	while (authority->priv->rkt_context == NULL)
+	  g_cond_wait (&authority->priv->rkt_init_cond, &authority->priv->rkt_init_mutex);
+	g_mutex_unlock (&authority->priv->rkt_init_mutex);
+
+	setup_file_monitors (authority);
+	load_scripts (authority);
+
+	JS_EndRequest (authority->priv->cx);
+	entered_request = FALSE;
+
+	G_OBJECT_CLASS (polkit_backend_js_authority_parent_class)->constructed (object);
+  }
   return;
 
  fail:
@@ -604,7 +613,7 @@ polkit_backend_js_authority_finalize (GObject *object)
     {
       GFileMonitor *monitor = authority->priv->dir_monitors[n];
       g_signal_handlers_disconnect_by_func (monitor,
-                                            G_CALLBACK (on_dir_monitor_changed),
+                                            (gpointer*)G_CALLBACK (on_dir_monitor_changed),
                                             authority);
       g_object_unref (monitor);
     }
@@ -690,7 +699,7 @@ polkit_backend_js_authority_class_init (PolkitBackendJsAuthorityClass *klass)
                                                        NULL,
                                                        NULL,
                                                        G_TYPE_STRV,
-                                                       G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE));
+                                                       GParamFlags(G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE)));
 
 
   g_type_class_add_private (klass, sizeof (PolkitBackendJsAuthorityPrivate));
@@ -730,7 +739,7 @@ set_property_strv (PolkitBackendJsAuthority  *authority,
       JSString *jsstr;
       jsval val;
 
-      jsstr = JS_NewStringCopyZ (authority->priv->cx, g_ptr_array_index(value, n));
+      jsstr = JS_NewStringCopyZ (authority->priv->cx, (char *)g_ptr_array_index(value, n));
       val = STRING_TO_JSVAL (jsstr);
       JS_SetElement (authority->priv->cx, array_object, n, &val);
     }
@@ -1406,8 +1415,8 @@ spawn_cb (GObject       *source_object,
           GAsyncResult  *res,
           gpointer       user_data)
 {
-  SpawnData *data = user_data;
-  data->res = g_object_ref (res);
+  SpawnData *data = (SpawnData *)user_data;
+  data->res = (GAsyncResult*)g_object_ref (res);
   g_main_loop_quit (data->loop);
 }
 
@@ -1716,7 +1725,7 @@ static void
 utils_on_cancelled (GCancellable *cancellable,
                     gpointer      user_data)
 {
-  UtilsSpawnData *data = user_data;
+  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
   GError *error;
 
   error = NULL;
@@ -1731,7 +1740,7 @@ utils_read_child_stderr (GIOChannel *channel,
                          GIOCondition condition,
                          gpointer user_data)
 {
-  UtilsSpawnData *data = user_data;
+  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
   gchar buf[1024];
   gsize bytes_read;
 
@@ -1745,7 +1754,7 @@ utils_read_child_stdout (GIOChannel *channel,
                          GIOCondition condition,
                          gpointer user_data)
 {
-  UtilsSpawnData *data = user_data;
+  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
   gchar buf[1024];
   gsize bytes_read;
 
@@ -1759,7 +1768,7 @@ utils_child_watch_cb (GPid     pid,
                       gint     status,
                       gpointer user_data)
 {
-  UtilsSpawnData *data = user_data;
+  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
   gchar *buf;
   gsize buf_size;
 
@@ -1788,7 +1797,7 @@ utils_child_watch_cb (GPid     pid,
 static gboolean
 utils_timeout_cb (gpointer user_data)
 {
-  UtilsSpawnData *data = user_data;
+  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
 
   data->timed_out = TRUE;
 
@@ -1817,12 +1826,12 @@ utils_spawn (const gchar *const  *argv,
   data->simple = g_simple_async_result_new (NULL,
                                             callback,
                                             user_data,
-                                            utils_spawn);
+                                            (gpointer*)utils_spawn);
   data->main_context = g_main_context_get_thread_default ();
   if (data->main_context != NULL)
     g_main_context_ref (data->main_context);
 
-  data->cancellable = cancellable != NULL ? g_object_ref (cancellable) : NULL;
+  data->cancellable = cancellable != NULL ? (GCancellable*)g_object_ref (cancellable) : NULL;
 
   data->child_stdout = g_string_new (NULL);
   data->child_stderr = g_string_new (NULL);
@@ -1855,7 +1864,7 @@ utils_spawn (const gchar *const  *argv,
   if (!g_spawn_async_with_pipes (NULL, /* working directory */
                                  (gchar **) argv,
                                  NULL, /* envp */
-                                 G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
+                                 GSpawnFlags(G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD),
                                  NULL, /* child_setup */
                                  NULL, /* child_setup's user_data */
                                  &(data->child_pid),
@@ -1922,7 +1931,7 @@ utils_spawn_finish (GAsyncResult   *res,
   if (g_simple_async_result_propagate_error (simple, error))
     goto out;
 
-  data = g_simple_async_result_get_op_res_gpointer (simple);
+  data = (UtilsSpawnData*)g_simple_async_result_get_op_res_gpointer (simple);
 
   if (data->timed_out)
     {
-- 
2.9.2



More information about the polkit-devel mailing list