summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFernando Herrera <fherrera@onirica.com>2007-09-04 12:36:24 +0000
committerFernando Herrera de las Heras <fherrera@src.gnome.org>2007-09-04 12:36:24 +0000
commit34cf2826d25b391bd3da386d187ceede36b31bf0 (patch)
tree530029b8a3a366b6d457cc3e9055ba49e4116ec9
parentc99040a4b3985994a9cbe6ea0f4f0fd28ba3740e (diff)
downloadgtk+-34cf2826d25b391bd3da386d187ceede36b31bf0.tar.gz
copy filename to builder->priv instead of holding a reference to it. Bug
2007-09-04 Fernando Herrera <fherrera@onirica.com> * gtk/gtkbuilder.c: (gtk_builder_finalize), (gtk_builder_add_from_file): copy filename to builder->priv instead of holding a reference to it. Bug #472643 svn path=/trunk/; revision=18722
-rw-r--r--ChangeLog6
-rw-r--r--gtk/gtkbuilder.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 946baf01d3..82e5983c18 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-09-04 Fernando Herrera <fherrera@onirica.com>
+
+ * gtk/gtkbuilder.c: (gtk_builder_finalize),
+ (gtk_builder_add_from_file): copy filename to builder->priv instead of
+ holding a reference to it. Bug #472643
+
2007-09-04 Michael Natterer <mitch@imendio.com>
* gtk/gtkmodules.c: added missing \n to g_print() in GTK_NOTE().
diff --git a/gtk/gtkbuilder.c b/gtk/gtkbuilder.c
index 551a47772b..6608bc5818 100644
--- a/gtk/gtkbuilder.c
+++ b/gtk/gtkbuilder.c
@@ -70,7 +70,7 @@ struct _GtkBuilderPrivate
GSList *signals;
gchar *current_root;
GSList *root_objects;
- const gchar *filename;
+ gchar *filename;
};
G_DEFINE_TYPE (GtkBuilder, gtk_builder, G_TYPE_OBJECT)
@@ -142,6 +142,7 @@ gtk_builder_finalize (GObject *object)
g_hash_table_destroy (builder->priv->objects);
g_slist_foreach (builder->priv->root_objects, (GFunc)g_object_unref, NULL);
g_slist_free (builder->priv->root_objects);
+ g_free (builder->priv->filename);
}
static void
@@ -651,7 +652,7 @@ gtk_builder_add_from_file (GtkBuilder *builder,
return 0;
}
- builder->priv->filename = filename;
+ builder->priv->filename = g_strdup (filename);
_gtk_builder_parser_parse_buffer (builder, filename,
buffer, length,