[glide] Start working on some leaks with inspector
- From: Robert Carr <racarr src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glide] Start working on some leaks with inspector
- Date: Thu, 6 May 2010 08:48:52 +0000 (UTC)
commit 02339f11f1d7720813e58e2e9092c8886e5a2c6c
Author: Robert Carr <racarr Valentine localdomain>
Date: Thu May 6 03:57:00 2010 -0400
Start working on some leaks with inspector
libglide/glide-inspector-notebook.c | 21 ++++++++++++---------
libglide/glide-inspector-slide.c | 14 ++++++++------
libglide/glide-window.c | 4 ++++
3 files changed, 24 insertions(+), 15 deletions(-)
---
diff --git a/libglide/glide-inspector-notebook.c b/libglide/glide-inspector-notebook.c
index 5298ac8..874d468 100644
--- a/libglide/glide-inspector-notebook.c
+++ b/libglide/glide-inspector-notebook.c
@@ -195,21 +195,24 @@ glide_inspector_notebook_set_stage_manager (GlideInspectorNotebook *inspector,
int i = 0;
GtkNotebook *notebook = GTK_NOTEBOOK (inspector);
- if (inspector->priv->manager)
- g_object_unref (G_OBJECT (inspector->priv->manager));
- inspector->priv->manager = (GlideStageManager *)g_object_ref (G_OBJECT (manager));
- inspector->priv->selection_changed_id = g_signal_connect (inspector->priv->manager,
- "selection-changed",
- G_CALLBACK (glide_inspector_notebook_selection_changed),
- inspector);
-
for (i = 0; i < gtk_notebook_get_n_pages (notebook); i++)
{
GtkWidget *page = gtk_notebook_get_nth_page (notebook, i);
g_object_set (page, "actor", NULL, NULL);
}
-
+ if (manager)
+ {
+ inspector->priv->manager = manager;
+ inspector->priv->selection_changed_id = g_signal_connect (inspector->priv->manager,
+ "selection-changed",
+ G_CALLBACK (glide_inspector_notebook_selection_changed),
+ inspector);
+ }
+ else
+ {
+ inspector->priv->manager = NULL;
+ }
g_object_notify (G_OBJECT (inspector), "stage-manager");
}
diff --git a/libglide/glide-inspector-slide.c b/libglide/glide-inspector-slide.c
index 6adca0b..c4c2e53 100644
--- a/libglide/glide-inspector-slide.c
+++ b/libglide/glide-inspector-slide.c
@@ -124,8 +124,8 @@ glide_inspector_slide_file_set (GtkFileChooserButton *file_button,
static void
glide_inspector_slide_finalize (GObject *object)
{
- GlideInspectorSlide *inspector = (GlideInspectorSlide *)object;
- g_object_unref (G_OBJECT (inspector->priv->actor));
+ // GlideInspectorSlide *inspector = (GlideInspectorSlide *)object;
+
}
static void
@@ -284,12 +284,14 @@ glide_inspector_slide_set_actor (GlideInspectorSlide *inspector,
inspector->priv->color_notify_id = 0;
}
- if (inspector->priv->actor)
- g_object_unref (G_OBJECT (inspector->priv->actor));
+
if (!actor)
- return;
+ {
+ inspector->priv->actor = NULL;
+ return;
+ }
- inspector->priv->actor = (GlideActor *)g_object_ref (G_OBJECT (actor));
+ inspector->priv->actor = actor;
if (!GLIDE_IS_SLIDE (actor))
{
diff --git a/libglide/glide-window.c b/libglide/glide-window.c
index 5850fc0..466d665 100644
--- a/libglide/glide-window.c
+++ b/libglide/glide-window.c
@@ -356,6 +356,10 @@ glide_window_set_document (GlideWindow *w, GlideDocument *d)
static void
glide_window_close_document (GlideWindow *w)
{
+
+ if (w->priv->inspector_notebook)
+ glide_inspector_notebook_set_stage_manager (GLIDE_INSPECTOR_NOTEBOOK (w->priv->inspector_notebook),
+ NULL);
if (w->priv->document)
g_object_unref (w->priv->document);
if (w->priv->manager)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]