[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