[Xfce4-commits] <xfce4-settings:master> Plug a few more memory leaks.

Igor Slepchin noreply at xfce.org
Wed Aug 22 23:14:08 CEST 2012


Updating branch refs/heads/master
         to 2e389f927ef14dd2ad43b4d25c5910d1bcef7172 (commit)
       from 3de5f20cca31d8ba8dbbc9db9f189f0b4f4c0d3c (commit)

commit 2e389f927ef14dd2ad43b4d25c5910d1bcef7172
Author: Igor Slepchin <igor.slepchin at gmail.com>
Date:   Wed Jul 25 01:32:18 2012 -0400

    Plug a few more memory leaks.

 dialogs/keyboard-settings/xfce-keyboard-settings.c |   25 +++++++++++++++++--
 1 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/dialogs/keyboard-settings/xfce-keyboard-settings.c b/dialogs/keyboard-settings/xfce-keyboard-settings.c
index fcddca0..d55177e 100644
--- a/dialogs/keyboard-settings/xfce-keyboard-settings.c
+++ b/dialogs/keyboard-settings/xfce-keyboard-settings.c
@@ -468,13 +468,16 @@ xfce_keyboard_settings_finalize (GObject *object)
   XfceKeyboardSettings *settings = XFCE_KEYBOARD_SETTINGS (object);
 
 #ifdef HAVE_LIBXKLAVIER
-  xkl_config_rec_reset (settings->priv->xkl_rec_config);
   /* Stop xklavier engine */
 #ifdef HAVE_LIBXKLAVIER5
   xkl_engine_stop_listen (settings->priv->xkl_engine, XKLL_TRACK_KEYBOARD_STATE);
 #else
   xkl_engine_stop_listen (settings->priv->xkl_engine);
 #endif /* HAVE_LIBXKLAVIER5 */
+
+  g_object_unref (settings->priv->xkl_rec_config);
+  g_object_unref (settings->priv->xkl_registry);
+  g_object_unref (settings->priv->xkl_engine);
 #endif /* HAVE_LIBXKLAVIER */
 
   g_object_unref (G_OBJECT (settings->priv->provider));
@@ -1172,6 +1175,11 @@ xfce_keyboard_settings_set_layout (XfceKeyboardSettings *settings)
           g_free (variants);
           variants = tmp;
         }
+      else
+        {
+          g_free (val_layout);
+          g_free (val_variant);
+        }
     }
 
   xfconf_channel_set_string (settings->priv->keyboard_layout_channel,
@@ -1265,6 +1273,8 @@ xfce_keyboard_settings_init_layout (XfceKeyboardSettings *settings)
   g_strfreev (variants);
   g_free (default_layouts);
   g_free (default_variants);
+  g_free (val_layout);
+  g_free (val_variant);
 }
 
 
@@ -1498,6 +1508,8 @@ xfce_keyboard_settings_edit_layout_button_cb (GtkWidget            *widget,
       g_strfreev (strings);
     }
   g_free (layout);
+  g_free (current_layout);
+  g_free (current_variant);
 }
 
 
@@ -1732,12 +1744,11 @@ xfce_keyboard_settings_layout_selection (XfceKeyboardSettings *settings,
 
       if (gtk_tree_model_get_iter_first (model, &iter))
         {
+          gchar *tmp_layout;
           found = FALSE;
 
           do
             {
-              gchar *tmp_layout;
-
               gtk_tree_model_get (model, &iter, XKB_AVAIL_LAYOUTS_TREE_ID, &tmp_layout, -1);
               path = gtk_tree_model_get_path (model, &iter);
 
@@ -1797,9 +1808,14 @@ xfce_keyboard_settings_layout_selection (XfceKeyboardSettings *settings,
               }
 
               gtk_tree_path_free (path);
+              path = NULL;
               g_free (tmp_layout);
+              tmp_layout = NULL;
             }
           while (gtk_tree_model_iter_next (model, &iter));
+          g_free (tmp_layout);
+          if (path)
+            gtk_tree_path_free (path);
 
           if (!found)
             {
@@ -1812,6 +1828,7 @@ xfce_keyboard_settings_layout_selection (XfceKeyboardSettings *settings,
                   gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (layout_selection_view),
                                                 path, NULL,
                                                 TRUE, 0.5, 0);
+                  gtk_tree_path_free (path);
                 }
             }
         }
@@ -1826,6 +1843,7 @@ xfce_keyboard_settings_layout_selection (XfceKeyboardSettings *settings,
           gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (layout_selection_view),
                                         path, NULL,
                                         TRUE, 0.5, 0);
+          gtk_tree_path_free (path);
         }
     }
 
@@ -1859,6 +1877,7 @@ xfce_keyboard_settings_layout_selection (XfceKeyboardSettings *settings,
       g_free (variant);
       g_free (layout_desc);
       g_free (variant_desc);
+      gtk_tree_path_free (path);
     }
 
   gtk_widget_hide (GTK_WIDGET (keyboard_layout_selection_dialog));


More information about the Xfce4-commits mailing list