[glade3] * gladeui/glade-base-editor.c: Fixed to unref in ->dispose() and to unset the loaded widget in t
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glade3] * gladeui/glade-base-editor.c: Fixed to unref in ->dispose() and to unset the loaded widget in t
- Date: Thu, 1 Apr 2010 02:00:22 +0000 (UTC)
commit a70df1516455980ce403e89fe4e12e11041f9c1e
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date: Wed Mar 31 22:00:10 2010 -0400
* gladeui/glade-base-editor.c: Fixed to unref in ->dispose() and to unset the loaded widget
in the signal editor when doing so.
ChangeLog | 3 +++
gladeui/glade-base-editor.c | 26 +++++++++++++++++++-------
2 files changed, 22 insertions(+), 7 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 4b8e323..2c6de6e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -17,6 +17,9 @@
* gladeui/glade-project.c: Added the targets-changed signal to refresh views with data about
target project versions (notebook tabs).
+ * gladeui/glade-base-editor.c: Fixed to unref in ->dispose() and to unset the loaded widget
+ in the signal editor when doing so.
+
2010-03-30 Tristan Van Berkom <tvb gnome org>
* plugins/gtk+/glade-gtk.c, plugins/gtk+/gtk+.xml.in: Block the glade_gtk_text_buffer_changed()
diff --git a/gladeui/glade-base-editor.c b/gladeui/glade-base-editor.c
index 37924fe..583a926 100644
--- a/gladeui/glade-base-editor.c
+++ b/gladeui/glade-base-editor.c
@@ -1177,8 +1177,7 @@ glade_base_editor_set_container (GladeBaseEditor *editor,
{
GladeBaseEditorPrivate *e = editor->priv;
- if (e->project)
- glade_base_editor_project_disconnect (editor);
+ glade_base_editor_project_disconnect (editor);
if (container == NULL)
{
@@ -1237,15 +1236,27 @@ glade_base_editor_finalize (GObject *object)
{
GladeBaseEditor *cobj = GLADE_BASE_EDITOR (object);
+ g_free (cobj->priv);
+
+ G_OBJECT_CLASS(parent_class)->finalize (object);
+}
+
+static void
+glade_base_editor_dispose (GObject *object)
+{
+ GladeBaseEditor *cobj = GLADE_BASE_EDITOR (object);
+
+ glade_signal_editor_load_widget (cobj->priv->signal_editor, NULL);
+
reset_child_types (cobj);
- /* Free private members, etc. */
glade_base_editor_project_disconnect (cobj);
- g_object_unref (cobj->priv->group);
-
- g_free (cobj->priv);
- G_OBJECT_CLASS(parent_class)->finalize(object);
+ if (cobj->priv->group)
+ cobj->priv->group =
+ (g_object_unref (cobj->priv->group), NULL);
+
+ G_OBJECT_CLASS(parent_class)->dispose (object);
}
static void
@@ -1430,6 +1441,7 @@ glade_base_editor_class_init (GladeBaseEditorClass *klass)
parent_class = g_type_class_peek_parent(klass);
object_class->finalize = glade_base_editor_finalize;
+ object_class->dispose = glade_base_editor_dispose;
object_class->set_property = glade_base_editor_set_property;
object_class->get_property = glade_base_editor_get_property;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]