Replaced modest_hildon2_window_finalize by dispose
ModestFolderView and TnyGtkFolderListStore are now correctly freed again
/* '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);
/* '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);
static gboolean on_zoom_minus_plus_not_implemented (ModestWindow *window);
static void setup_menu (ModestHildon2Window *self);
ModestHildon2WindowClass *modest_hildon2_window_class = (ModestHildon2WindowClass *) klass;
parent_class = g_type_class_peek_parent (klass);
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",
signals[EDIT_MODE_CHANGED_SIGNAL] =
g_signal_new ("edit-mode-changed",
-modest_hildon2_window_finalize (GObject *obj)
+modest_hildon2_window_dispose (GObject *obj)
{
ModestHildon2WindowPrivate *priv;
priv = MODEST_HILDON2_WINDOW_GET_PRIVATE(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);
parent_class = g_type_class_peek_parent (klass);
gobject_class->finalize = modest_folder_view_finalize;
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));
g_type_class_add_private (gobject_class,
sizeof(ModestFolderViewPrivate));
static void
modest_folder_view_dispose (GObject *obj)
{
static void
modest_folder_view_dispose (GObject *obj)
{
- static gboolean disposed = FALSE;
ModestFolderViewPrivate *priv;
ModestFolderViewPrivate *priv;
- if (disposed)
- return;
-
priv = MODEST_FOLDER_VIEW_GET_PRIVATE (obj);
#ifdef MODEST_TOOLKIT_HILDON2
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 */
#endif
/* Free external references */
g_object_unref (priv->list_to_move);
priv->list_to_move = NULL;
}
g_object_unref (priv->list_to_move);
priv->list_to_move = NULL;
}
+
+ G_OBJECT_CLASS(parent_class)->dispose (obj);
- 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");
priv->signal_handlers = modest_signal_mgr_disconnect (priv->signal_handlers,
G_OBJECT (old_tny_model),
"activity-changed");
static void
modest_window_dispose (GObject *obj)
{
static void
modest_window_dispose (GObject *obj)
{
- ModestWindowPrivate *priv;
+ ModestWindowPrivate *priv;
priv = MODEST_WINDOW_GET_PRIVATE(obj);
priv = MODEST_WINDOW_GET_PRIVATE(obj);
g_object_unref (G_OBJECT(priv->ui_dimming_manager));
priv->ui_dimming_manager = NULL;
}
g_object_unref (G_OBJECT(priv->ui_dimming_manager));
priv->ui_dimming_manager = NULL;
}
G_OBJECT_CLASS(parent_class)->dispose (obj);
}
G_OBJECT_CLASS(parent_class)->dispose (obj);
}