From: Sergio Villar Senin Date: Mon, 13 Jul 2009 07:37:48 +0000 (+0200) Subject: Replaced modest_folder_window_finalize by dispose X-Git-Tag: 3.0.17-rc23~6 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=8eb229bb1539fbf27915a3128cf1b10c85719c20 Replaced modest_folder_window_finalize by dispose Replaced modest_hildon2_window_finalize by dispose ModestFolderView and TnyGtkFolderListStore are now correctly freed again --- diff --git a/src/hildon2/modest-hildon2-window.c b/src/hildon2/modest-hildon2-window.c index 0882876..9441738 100644 --- a/src/hildon2/modest-hildon2-window.c +++ b/src/hildon2/modest-hildon2-window.c @@ -52,7 +52,7 @@ typedef struct _EditModeRegister { /* 'private'/'protected' functions */ static void modest_hildon2_window_class_init (gpointer klass, gpointer class_data); static void modest_hildon2_window_instance_init (GTypeInstance *instance, gpointer g_class); -static void modest_hildon2_window_finalize (GObject *obj); +static void modest_hildon2_window_dispose (GObject *obj); static gboolean on_zoom_minus_plus_not_implemented (ModestWindow *window); static void setup_menu (ModestHildon2Window *self); @@ -142,7 +142,7 @@ modest_hildon2_window_class_init (gpointer klass, gpointer class_data) ModestHildon2WindowClass *modest_hildon2_window_class = (ModestHildon2WindowClass *) klass; parent_class = g_type_class_peek_parent (klass); - gobject_class->finalize = modest_hildon2_window_finalize; + gobject_class->dispose = modest_hildon2_window_dispose; signals[EDIT_MODE_CHANGED_SIGNAL] = g_signal_new ("edit-mode-changed", @@ -165,19 +165,23 @@ modest_hildon2_window_class_init (gpointer klass, gpointer class_data) } static void -modest_hildon2_window_finalize (GObject *obj) +modest_hildon2_window_dispose (GObject *obj) { ModestHildon2WindowPrivate *priv; priv = MODEST_HILDON2_WINDOW_GET_PRIVATE(obj); - g_object_unref (priv->app_menu_dimming_group); - priv->app_menu_dimming_group = NULL; + if (priv->app_menu_dimming_group) { + g_object_unref (priv->app_menu_dimming_group); + priv->app_menu_dimming_group = NULL; + } - g_hash_table_destroy (priv->edit_mode_registry); - priv->edit_mode_registry = NULL; + if (priv->edit_mode_registry) { + g_hash_table_unref (priv->edit_mode_registry); + priv->edit_mode_registry = NULL; + } - G_OBJECT_CLASS(parent_class)->finalize (obj); + G_OBJECT_CLASS(parent_class)->dispose (obj); } static void diff --git a/src/widgets/modest-folder-view.c b/src/widgets/modest-folder-view.c index dbc1b4d..62a19eb 100644 --- a/src/widgets/modest-folder-view.c +++ b/src/widgets/modest-folder-view.c @@ -313,7 +313,7 @@ modest_folder_view_class_init (ModestFolderViewClass *klass) parent_class = g_type_class_peek_parent (klass); gobject_class->finalize = modest_folder_view_finalize; - gobject_class->finalize = modest_folder_view_dispose; + gobject_class->dispose = modest_folder_view_dispose; g_type_class_add_private (gobject_class, sizeof(ModestFolderViewPrivate)); @@ -1353,16 +1353,15 @@ tny_account_store_view_init (gpointer g, gpointer iface_data) static void modest_folder_view_dispose (GObject *obj) { - static gboolean disposed = FALSE; ModestFolderViewPrivate *priv; - if (disposed) - return; - priv = MODEST_FOLDER_VIEW_GET_PRIVATE (obj); #ifdef MODEST_TOOLKIT_HILDON2 - modest_signal_mgr_disconnect_all_and_destroy (priv->signal_handlers); + if (priv->signal_handlers) { + modest_signal_mgr_disconnect_all_and_destroy (priv->signal_handlers); + priv->signal_handlers = NULL; + } #endif /* Free external references */ @@ -1396,6 +1395,8 @@ modest_folder_view_dispose (GObject *obj) g_object_unref (priv->list_to_move); priv->list_to_move = NULL; } + + G_OBJECT_CLASS(parent_class)->dispose (obj); } static void @@ -2360,10 +2361,9 @@ modest_folder_view_update_model (ModestFolderView *self, self, NULL); - if (priv->signal_handlers > 0) { - GtkTreeModel *old_tny_model; - - if (get_inner_models (self, NULL, NULL, &old_tny_model)) { + GtkTreeModel *old_tny_model; + if (get_inner_models (self, NULL, NULL, &old_tny_model)) { + if (priv->signal_handlers > 0) { priv->signal_handlers = modest_signal_mgr_disconnect (priv->signal_handlers, G_OBJECT (old_tny_model), "activity-changed"); diff --git a/src/widgets/modest-window.c b/src/widgets/modest-window.c index d7e33f9..ea9c1dd 100644 --- a/src/widgets/modest-window.c +++ b/src/widgets/modest-window.c @@ -184,7 +184,7 @@ modest_window_finalize (GObject *obj) static void modest_window_dispose (GObject *obj) { - ModestWindowPrivate *priv; + ModestWindowPrivate *priv; priv = MODEST_WINDOW_GET_PRIVATE(obj); @@ -199,6 +199,7 @@ modest_window_dispose (GObject *obj) g_object_unref (G_OBJECT(priv->ui_dimming_manager)); priv->ui_dimming_manager = NULL; } + G_OBJECT_CLASS(parent_class)->dispose (obj); }