[glade] * gladeui/glade-catalog.c, gladeui/glade-inspector.c, gladeui/glade-property-class.c, gladeui/glad



commit 5e61eef7545be189706d99c118b8a73f4ea1c8d6
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date:   Sun Jan 16 19:13:55 2011 +0900

    	* gladeui/glade-catalog.c, gladeui/glade-inspector.c, gladeui/glade-property-class.c,
    	gladeui/glade-utils.c, gladeui/glade-widget-adaptor.c, gladeui/glade-widget.c,
    	gladeui/glade-xml-utils.c, plugins/gtk+/glade-gtk.c:
    	Plugging leaks found with valgrind.

 ChangeLog                      |    5 +++++
 gladeui/glade-catalog.c        |    2 ++
 gladeui/glade-inspector.c      |   10 ++++++++++
 gladeui/glade-property-class.c |    9 ++++++---
 gladeui/glade-utils.c          |    5 ++++-
 gladeui/glade-widget-adaptor.c |    6 ++++++
 gladeui/glade-widget.c         |    3 ++-
 gladeui/glade-xml-utils.c      |    6 ++++++
 plugins/gtk+/glade-gtk.c       |    6 +++++-
 9 files changed, 46 insertions(+), 6 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 25f32ce..9c73416 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -10,6 +10,11 @@
 	* gladeui/glade-widget.c: Notify widget row changes when parentless widget references
 	  are added/removed from a widget.
 
+	* gladeui/glade-catalog.c, gladeui/glade-inspector.c, gladeui/glade-property-class.c,
+	gladeui/glade-utils.c, gladeui/glade-widget-adaptor.c, gladeui/glade-widget.c,
+	gladeui/glade-xml-utils.c, plugins/gtk+/glade-gtk.c:
+	Plugging leaks found with valgrind.
+
 2011-01-15  Emilio Pozuelo Monfort <pochu27 gmail com>
 
 	* plugins/gtk+/Makefile.am: Don't install .in files.
diff --git a/gladeui/glade-catalog.c b/gladeui/glade-catalog.c
index ba19b2c..068cb21 100644
--- a/gladeui/glade-catalog.c
+++ b/gladeui/glade-catalog.c
@@ -481,6 +481,8 @@ catalogs_from_path (GList * catalogs, const gchar * path)
           else
             g_warning ("Unable to open the catalog file %s.\n", filename);
         }
+
+      g_dir_close (dir);
     }
   else
     g_warning ("Failed to open catalog directory '%s': %s", path,
diff --git a/gladeui/glade-inspector.c b/gladeui/glade-inspector.c
index 8787f21..b8eb8da 100644
--- a/gladeui/glade-inspector.c
+++ b/gladeui/glade-inspector.c
@@ -493,12 +493,22 @@ glade_inspector_dispose (GObject * object)
 
   glade_inspector_set_project (inspector, NULL);
 
+  if (inspector->priv->idle_complete)
+    {
+      g_source_remove (inspector->priv->idle_complete);
+      inspector->priv->idle_complete = 0;
+    }
+
   G_OBJECT_CLASS (glade_inspector_parent_class)->dispose (object);
 }
 
 static void
 glade_inspector_finalize (GObject * object)
 {
+  GladeInspector *inspector = GLADE_INSPECTOR (object);
+
+  g_completion_free (inspector->priv->completion);
+
   G_OBJECT_CLASS (glade_inspector_parent_class)->finalize (object);
 }
 
diff --git a/gladeui/glade-property-class.c b/gladeui/glade-property-class.c
index ba12d56..a037c77 100644
--- a/gladeui/glade-property-class.c
+++ b/gladeui/glade-property-class.c
@@ -1527,9 +1527,8 @@ gpc_read_displayable_values_from_node (GladeXmlNode * node,
       GFlagsValue *flags_val;
 
 
-      id = glade_xml_get_property_string_required (child, GLADE_TAG_ID, NULL);
-      name =
-          glade_xml_get_property_string_required (child, GLADE_TAG_NAME, NULL);
+      id   = glade_xml_get_property_string_required (child, GLADE_TAG_ID, NULL);
+      name = glade_xml_get_property_string_required (child, GLADE_TAG_NAME, NULL);
 
       if (!id || !name)
         continue;
@@ -1566,6 +1565,7 @@ gpc_read_displayable_values_from_node (GladeXmlNode * node,
         }
 
       g_free (id);
+      g_free (name);
 
       child = glade_xml_node_next (child);
     }
@@ -1837,6 +1837,9 @@ glade_property_class_parse_specifications (GladePropertyClass * klass,
       else
         g_critical ("Unsupported pspec type %s (value -> string)",
                     g_type_name (spec_type));
+
+      g_free (minstr);
+      g_free (maxstr);
     }
   return pspec;
 }
diff --git a/gladeui/glade-utils.c b/gladeui/glade-utils.c
index 019e12f..5219463 100644
--- a/gladeui/glade-utils.c
+++ b/gladeui/glade-utils.c
@@ -882,7 +882,10 @@ glade_util_canonical_path (const gchar * path)
           if (g_chdir (dirname) == 0)
             {
               if ((direct_dir = g_get_current_dir ()) != NULL)
-                direct_name = g_build_filename (direct_dir, basename, NULL);
+		{
+		  direct_name = g_build_filename (direct_dir, basename, NULL);
+		  g_free (direct_dir);
+		}
               else
                 g_warning ("g_path");
 
diff --git a/gladeui/glade-widget-adaptor.c b/gladeui/glade-widget-adaptor.c
index c2da225..1e59544 100644
--- a/gladeui/glade-widget-adaptor.c
+++ b/gladeui/glade-widget-adaptor.c
@@ -1558,6 +1558,7 @@ gwa_derive_adaptor_for_type (GType object_type, GWADerivedClassData * data)
   type_name = g_strdup_printf ("Glade%sAdaptor", g_type_name (object_type));
   derived_type = g_type_register_static (parent_type, type_name,
                                          &adaptor_info, 0);
+  g_free (type_name);
 
   return derived_type;
 }
@@ -2539,6 +2540,8 @@ glade_widget_adaptor_from_catalog (GladeCatalog * catalog,
 
   glade_widget_adaptor_register (adaptor);
 
+  g_free (name);
+
   return adaptor;
 }
 
@@ -3182,6 +3185,9 @@ glade_widget_adaptor_child_set_property (GladeWidgetAdaptor * adaptor,
   g_return_if_fail (property_name != NULL && value != NULL);
   g_return_if_fail (g_type_is_a (G_OBJECT_TYPE (container), adaptor->priv->type));
 
+  /* XXX Valgrind says that the above 'g_type_is_a' line allocates uninitialized stack memory
+   * that is later used in glade_gtk_box_child_set_property, why ? */
+
   if (GLADE_WIDGET_ADAPTOR_GET_CLASS (adaptor)->child_set_property)
     GLADE_WIDGET_ADAPTOR_GET_CLASS
         (adaptor)->child_set_property (adaptor, container, child,
diff --git a/gladeui/glade-widget.c b/gladeui/glade-widget.c
index fc0d452..ce30b0d 100644
--- a/gladeui/glade-widget.c
+++ b/gladeui/glade-widget.c
@@ -146,7 +146,7 @@ struct _GladeWidgetPrivate {
   GList          *locked_widgets; /* A list of widgets this widget has locked down.
 				   */
 
-	GtkTreeModel   *signal_model; /* Signal model (or NULL if not yet requested) */
+  GtkTreeModel   *signal_model; /* Signal model (or NULL if not yet requested) */
     
   /* Construct parameters: */
   GladeWidget       *construct_template;
@@ -951,6 +951,7 @@ glade_widget_finalize (GObject * object)
 
   g_free (widget->priv->name);
   g_free (widget->priv->internal);
+  g_free (widget->priv->construct_internal);
   g_free (widget->priv->support_warning);
   g_hash_table_destroy (widget->priv->signals);
 
diff --git a/gladeui/glade-xml-utils.c b/gladeui/glade-xml-utils.c
index 1756f7b..558adcd 100644
--- a/gladeui/glade-xml-utils.c
+++ b/gladeui/glade-xml-utils.c
@@ -509,6 +509,9 @@ glade_xml_get_property_version (GladeXmlNode * node_in,
 
       g_strfreev (split);
     }
+
+  g_free (value);
+
   return TRUE;
 }
 
@@ -550,6 +553,9 @@ glade_xml_get_property_targetable_versions (GladeXmlNode * node_in,
 
       g_strfreev (split);
     }
+
+  g_free (value);
+
   return targetable;
 }
 
diff --git a/plugins/gtk+/glade-gtk.c b/plugins/gtk+/glade-gtk.c
index 2e89abb..4a3b16b 100644
--- a/plugins/gtk+/glade-gtk.c
+++ b/plugins/gtk+/glade-gtk.c
@@ -350,7 +350,8 @@ glade_gtk_parse_atk_relation (GladeProperty * property, GladeXmlNode * node)
   if (string)
     {
       g_object_set_data_full (G_OBJECT (property), "glade-loaded-object",
-                              g_strdup (string), g_free);
+			      /* 'string' here is already allocated on the heap */
+                              string, g_free);
     }
 }
 
@@ -1447,6 +1448,9 @@ sort_box_children (GtkWidget * widget_a, GtkWidget * widget_b)
 
   box = gtk_widget_get_parent (widget_a);
 
+  /* XXX Sometimes the packing "position" property doesnt exist here, why ?
+   */
+
   if (gwidget_a)
     glade_widget_pack_property_get (gwidget_a, "position", &position_a);
   else



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]