dbus_message_iter_next (&iter_struct);
dbus_message_iter_get_basic (&iter_struct, &obj_path);
+ g_free (app->desktop_name);
app->desktop_name = g_strdup (app_name);
+ g_free (app->desktop_path);
app->desktop_path = g_strdup (obj_path);
}
}
/* These will be overridden when we get a reply, but in practice these
defaults should always be correct */
- app->desktop_name = ATSPI_DBUS_NAME_REGISTRY;
- app->desktop_path = ATSPI_DBUS_PATH_ROOT;
+ app->desktop_name = g_strdup (ATSPI_DBUS_NAME_REGISTRY);
+ app->desktop_path = g_strdup (ATSPI_DBUS_PATH_ROOT);
message = dbus_message_new_method_call (SPI_DBUS_NAME_REGISTRY,
ATSPI_DBUS_PATH_ROOT,
if (!dbus_connection_send_with_reply (app->bus, message, &pending, -1)
|| !pending)
{
+ dbus_message_unref (message);
return FALSE;
}
g_free (app->app_tmp_dir);
app->app_tmp_dir = NULL;
}
+
+ g_free (app->desktop_name);
+ app->desktop_name = NULL;
+ g_free (app->desktop_path);
+ app->desktop_path = NULL;
}
/*---------------------------------------------------------------------------*/
{
dbus_connection_remove_filter (spi_global_app_data->bus, signal_filter, NULL);
droute_context_unregister (spi_global_app_data->droute, spi_global_app_data->bus);
+ dbus_connection_close (spi_global_app_data->bus);
dbus_connection_unref (spi_global_app_data->bus);
+ spi_global_app_data->bus = NULL;
}
for (l = spi_global_app_data->direct_connections; l; l = l->next)
dbus_connection_unref (connection);
}
g_list_free (spi_global_app_data->direct_connections);
+ spi_global_app_data->direct_connections = NULL;
for (ls = clients; ls; ls = ls->next)
g_free (l->data);
g_slist_free (clients);
clients = NULL;
- g_object_unref (spi_global_cache);
- g_object_unref (spi_global_leasing);
- g_object_unref (spi_global_register);
+ g_clear_object (&spi_global_cache);
+ g_clear_object (&spi_global_leasing);
+ g_clear_object (&spi_global_register);
if (spi_global_app_data->main_context)
g_main_context_unref (spi_global_app_data->main_context);