summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c6
-rw-r--r--plugins/gconf/gsd-gconf-manager.c162
-rw-r--r--plugins/keybindings/gsd-keybindings-manager.c13
-rw-r--r--plugins/mouse/gsd-mouse-manager.c12
-rw-r--r--plugins/sound/gsd-sound-manager.c8
-rw-r--r--plugins/xsettings/gsd-xsettings-manager.c18
6 files changed, 120 insertions, 99 deletions
diff --git a/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c b/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c
index e665d00b..733efd2b 100644
--- a/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c
+++ b/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c
@@ -1021,8 +1021,10 @@ gsd_a11y_keyboard_manager_stop (GsdA11yKeyboardManager *manager)
if (p->status_icon)
gtk_status_icon_set_visible (p->status_icon, FALSE);
- g_object_unref (p->settings);
- p->settings = NULL;
+ if (p->settings != NULL) {
+ g_object_unref (p->settings);
+ p->settings = NULL;
+ }
gdk_window_remove_filter (NULL,
(GdkFilterFunc) cb_xkb_event_filter,
diff --git a/plugins/gconf/gsd-gconf-manager.c b/plugins/gconf/gsd-gconf-manager.c
index ac78e564..f5c87ab8 100644
--- a/plugins/gconf/gsd-gconf-manager.c
+++ b/plugins/gconf/gsd-gconf-manager.c
@@ -25,7 +25,7 @@
#define GSD_GCONF_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_GCONF_MANAGER, GsdGconfManagerPrivate))
struct GsdGconfManagerPrivate {
- GHashTable *conf_watchers;
+ GHashTable *conf_watchers;
};
GsdGconfManager *manager_object = NULL;
@@ -35,113 +35,115 @@ G_DEFINE_TYPE(GsdGconfManager, gsd_gconf_manager, G_TYPE_OBJECT)
static void
gsd_gconf_manager_finalize (GObject *object)
{
- GsdGconfManager *manager = GSD_GCONF_MANAGER (object);
+ GsdGconfManager *manager = GSD_GCONF_MANAGER (object);
- g_return_if_fail (manager->priv != NULL);
+ g_return_if_fail (manager->priv != NULL);
- if (manager->priv->conf_watchers != NULL)
- g_hash_table_destroy (manager->priv->conf_watchers);
+ if (manager->priv->conf_watchers != NULL)
+ g_hash_table_destroy (manager->priv->conf_watchers);
- G_OBJECT_CLASS (gsd_gconf_manager_parent_class)->finalize (object);
+ G_OBJECT_CLASS (gsd_gconf_manager_parent_class)->finalize (object);
}
static void
gsd_gconf_manager_class_init (GsdGconfManagerClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
- object_class->finalize = gsd_gconf_manager_finalize;
+ object_class->finalize = gsd_gconf_manager_finalize;
- g_type_class_add_private (klass, sizeof (GsdGconfManagerPrivate));
+ g_type_class_add_private (klass, sizeof (GsdGconfManagerPrivate));
}
static void
gsd_gconf_manager_init (GsdGconfManager *manager)
{
- manager->priv = GSD_GCONF_MANAGER_GET_PRIVATE (manager);
+ manager->priv = GSD_GCONF_MANAGER_GET_PRIVATE (manager);
}
GsdGconfManager *
gsd_gconf_manager_new (void)
{
- if (manager_object != NULL) {
- g_object_ref (manager_object);
- } else {
- manager_object = g_object_new (GSD_TYPE_GCONF_MANAGER, NULL);
- g_object_add_weak_pointer ((gpointer) manager_object,
- (gpointer *) &manager_object);
- }
-
- return manager_object;
+ if (manager_object != NULL) {
+ g_object_ref (manager_object);
+ } else {
+ manager_object = g_object_new (GSD_TYPE_GCONF_MANAGER, NULL);
+ g_object_add_weak_pointer ((gpointer) manager_object,
+ (gpointer *) &manager_object);
+ }
+
+ return manager_object;
}
gboolean
gsd_gconf_manager_start (GsdGconfManager *manager, GError **error)
{
- GDir *convertdir;
- gboolean result = FALSE;
-
- manager->priv->conf_watchers = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
-
- /* Read all conversion files from GCONF_SETTINGS_CONVERTDIR */
- convertdir = g_dir_open (GCONF_SETTINGS_CONVERTDIR, 0, error);
- if (convertdir) {
- const gchar *filename;
-
- while ((filename = g_dir_read_name (convertdir))) {
- gchar *path, **groups;
- gsize group_len, i;
- GKeyFile *key_file = g_key_file_new ();
-
- path = g_build_filename (GCONF_SETTINGS_CONVERTDIR, filename, NULL);
- if (!g_key_file_load_from_file (key_file, path, G_KEY_FILE_NONE, error)) {
- g_free (path);
- g_key_file_free (key_file);
- result = FALSE;
- break;
- }
-
- /* Load the groups in the file */
- groups = g_key_file_get_groups (key_file, &group_len);
- for (i = 0; i < group_len; i++) {
- gchar **keys;
- gsize key_len, j;
- GHashTable *keys_hash = NULL;
-
- keys = g_key_file_get_keys (key_file, groups[i], &key_len, error);
- for (j = 0; j < key_len; j++) {
- if (keys_hash == NULL)
- keys_hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
-
- g_hash_table_insert (keys_hash, g_strdup (keys[j]),
- g_strdup (g_key_file_get_value (key_file, groups[i], keys[j], error)));
- }
-
- g_strfreev (keys);
-
- if (keys_hash != NULL) {
- g_hash_table_insert (manager->priv->conf_watchers,
- g_strdup (groups[i]),
- conf_watcher_new (groups[i], keys_hash));
- }
- }
-
- /* Free all memory */
- g_free (path);
- g_strfreev (groups);
-
- result = TRUE;
- }
-
- g_dir_close (convertdir);
- }
-
- return result;
+ GDir *convertdir;
+ gboolean result = FALSE;
+
+ manager->priv->conf_watchers = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
+
+ /* Read all conversion files from GCONF_SETTINGS_CONVERTDIR */
+ convertdir = g_dir_open (GCONF_SETTINGS_CONVERTDIR, 0, error);
+ if (convertdir) {
+ const gchar *filename;
+
+ while ((filename = g_dir_read_name (convertdir))) {
+ gchar *path, **groups;
+ gsize group_len, i;
+ GKeyFile *key_file = g_key_file_new ();
+
+ path = g_build_filename (GCONF_SETTINGS_CONVERTDIR, filename, NULL);
+ if (!g_key_file_load_from_file (key_file, path, G_KEY_FILE_NONE, error)) {
+ g_free (path);
+ g_key_file_free (key_file);
+ result = FALSE;
+ break;
+ }
+
+ /* Load the groups in the file */
+ groups = g_key_file_get_groups (key_file, &group_len);
+ for (i = 0; i < group_len; i++) {
+ gchar **keys;
+ gsize key_len, j;
+ GHashTable *keys_hash = NULL;
+
+ keys = g_key_file_get_keys (key_file, groups[i], &key_len, error);
+ for (j = 0; j < key_len; j++) {
+ if (keys_hash == NULL)
+ keys_hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+
+ g_hash_table_insert (keys_hash, g_strdup (keys[j]),
+ g_strdup (g_key_file_get_value (key_file, groups[i], keys[j], error)));
+ }
+
+ g_strfreev (keys);
+
+ if (keys_hash != NULL) {
+ g_hash_table_insert (manager->priv->conf_watchers,
+ g_strdup (groups[i]),
+ conf_watcher_new (groups[i], keys_hash));
+ }
+ }
+
+ /* Free all memory */
+ g_free (path);
+ g_strfreev (groups);
+
+ result = TRUE;
+ }
+
+ g_dir_close (convertdir);
+ }
+
+ return result;
}
void
gsd_gconf_manager_stop (GsdGconfManager *manager)
{
- g_hash_table_destroy (manager->priv->conf_watchers);
- manager->priv->conf_watchers = NULL;
+ if (manager->priv->conf_watchers != NULL) {
+ g_hash_table_destroy (manager->priv->conf_watchers);
+ manager->priv->conf_watchers = NULL;
+ }
}
diff --git a/plugins/keybindings/gsd-keybindings-manager.c b/plugins/keybindings/gsd-keybindings-manager.c
index 5cad7d6e..3d5435e0 100644
--- a/plugins/keybindings/gsd-keybindings-manager.c
+++ b/plugins/keybindings/gsd-keybindings-manager.c
@@ -630,8 +630,10 @@ gsd_keybindings_manager_stop (GsdKeybindingsManager *manager)
binding_unregister_keys (manager);
- g_slist_free (p->screens);
- p->screens = NULL;
+ if (p->screens != NULL) {
+ g_slist_free (p->screens);
+ p->screens = NULL;
+ }
for (l = p->binding_list; l; l = l->next) {
Binding *b = l->data;
@@ -642,8 +644,11 @@ gsd_keybindings_manager_stop (GsdKeybindingsManager *manager)
g_free (b->key.keycodes);
g_free (b);
}
- g_slist_free (p->binding_list);
- p->binding_list = NULL;
+
+ if (p->binding_list != NULL) {
+ g_slist_free (p->binding_list);
+ p->binding_list = NULL;
+ }
}
static void
diff --git a/plugins/mouse/gsd-mouse-manager.c b/plugins/mouse/gsd-mouse-manager.c
index 685b7035..4ee0bd1e 100644
--- a/plugins/mouse/gsd-mouse-manager.c
+++ b/plugins/mouse/gsd-mouse-manager.c
@@ -1030,11 +1030,15 @@ gsd_mouse_manager_stop (GsdMouseManager *manager)
p->device_manager = NULL;
}
- g_object_unref (p->mouse_settings);
- p->mouse_settings = NULL;
+ if (p->mouse_settings != NULL) {
+ g_object_unref (p->mouse_settings);
+ p->mouse_settings = NULL;
+ }
- g_object_unref (p->touchpad_settings);
- p->touchpad_settings = NULL;
+ if (p->touchpad_settings != NULL) {
+ g_object_unref (p->touchpad_settings);
+ p->touchpad_settings = NULL;
+ }
set_locate_pointer (manager, FALSE);
}
diff --git a/plugins/sound/gsd-sound-manager.c b/plugins/sound/gsd-sound-manager.c
index 221418cc..85ebade6 100644
--- a/plugins/sound/gsd-sound-manager.c
+++ b/plugins/sound/gsd-sound-manager.c
@@ -316,10 +316,10 @@ gsd_sound_manager_stop (GsdSoundManager *manager)
g_debug ("Stopping sound manager");
#ifdef HAVE_PULSE
- if (manager->priv->settings != NULL) {
- g_object_unref (manager->priv->settings);
- manager->priv->settings = NULL;
- }
+ if (manager->priv->settings != NULL) {
+ g_object_unref (manager->priv->settings);
+ manager->priv->settings = NULL;
+ }
if (manager->priv->timeout) {
g_source_remove (manager->priv->timeout);
diff --git a/plugins/xsettings/gsd-xsettings-manager.c b/plugins/xsettings/gsd-xsettings-manager.c
index ccc9bfd2..91c09f82 100644
--- a/plugins/xsettings/gsd-xsettings-manager.c
+++ b/plugins/xsettings/gsd-xsettings-manager.c
@@ -751,14 +751,22 @@ gnome_xsettings_manager_stop (GnomeXSettingsManager *manager)
p->managers = NULL;
}
- g_object_unref (manager->priv->plugin_settings);
+ if (p->plugin_settings != NULL) {
+ g_object_unref (p->plugin_settings);
+ p->plugin_settings = NULL;
+ }
+
stop_fontconfig_monitor (manager);
- g_hash_table_destroy (p->settings);
- p->settings = NULL;
+ if (p->settings != NULL) {
+ g_hash_table_destroy (p->settings);
+ p->settings = NULL;
+ }
- g_object_unref (p->gtk);
- p->gtk = NULL;
+ if (p->gtk != NULL) {
+ g_object_unref (p->gtk);
+ p->gtk = NULL;
+ }
}
static void