[glade] * gladeui/glade-catalog.c, gladeui/glade-inspector.c, gladeui/glade-property-class.c, gladeui/glad
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glade] * gladeui/glade-catalog.c, gladeui/glade-inspector.c, gladeui/glade-property-class.c, gladeui/glad
- Date: Sun, 16 Jan 2011 10:06:38 +0000 (UTC)
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]