diff options
author | Dave Camp <dave@novell.com> | 2004-06-08 17:35:11 +0000 |
---|---|---|
committer | Dave Camp <campd@src.gnome.org> | 2004-06-08 17:35:11 +0000 |
commit | 47121747729208916cf270097180de2c715a21bc (patch) | |
tree | 04529b4a22c49fade04535ff1530549b1479ba88 | |
parent | 709a63126ac8b7cc37215fc72fe72239c46bb89d (diff) | |
download | nautilus-47121747729208916cf270097180de2c715a21bc.tar.gz |
Fixed up dispose/destroy/finalize usage in src/file-manager.
2004-06-08 Dave Camp <dave@novell.com>
* src/file-manager/fm-desktop-icon-view.c:
(fm_desktop_icon_view_destroy), (fm_desktop_icon_view_finalize),
(fm_desktop_icon_view_class_init):
* src/file-manager/fm-directory-view.c:
(fm_directory_view_destroy), (fm_directory_view_finalize):
* src/file-manager/fm-icon-view.c: (fm_icon_view_destroy),
(fm_icon_view_finalize), (fm_icon_view_class_init):
* src/file-manager/fm-list-model.c: (fm_list_model_dispose),
(fm_list_model_finalize), (fm_list_model_class_init):
* src/file-manager/fm-list-view.c: (fm_list_view_dispose),
(fm_list_view_finalize): Fixed up dispose/destroy/finalize
usage in src/file-manager.
-rw-r--r-- | ChangeLog | 15 | ||||
-rw-r--r-- | src/file-manager/fm-desktop-icon-view.c | 15 | ||||
-rw-r--r-- | src/file-manager/fm-directory-view.c | 48 | ||||
-rw-r--r-- | src/file-manager/fm-icon-view.c | 22 | ||||
-rw-r--r-- | src/file-manager/fm-list-model.c | 34 | ||||
-rw-r--r-- | src/file-manager/fm-list-view.c | 10 |
6 files changed, 109 insertions, 35 deletions
@@ -1,3 +1,18 @@ +2004-06-08 Dave Camp <dave@novell.com> + + * src/file-manager/fm-desktop-icon-view.c: + (fm_desktop_icon_view_destroy), (fm_desktop_icon_view_finalize), + (fm_desktop_icon_view_class_init): + * src/file-manager/fm-directory-view.c: + (fm_directory_view_destroy), (fm_directory_view_finalize): + * src/file-manager/fm-icon-view.c: (fm_icon_view_destroy), + (fm_icon_view_finalize), (fm_icon_view_class_init): + * src/file-manager/fm-list-model.c: (fm_list_model_dispose), + (fm_list_model_finalize), (fm_list_model_class_init): + * src/file-manager/fm-list-view.c: (fm_list_view_dispose), + (fm_list_view_finalize): Fixed up dispose/destroy/finalize + usage in src/file-manager. + 2004-06-07 Anders Carlsson <andersca@gnome.org> * libnautilus-private/nautilus-file-operations-progress.c: diff --git a/src/file-manager/fm-desktop-icon-view.c b/src/file-manager/fm-desktop-icon-view.c index 65b1a7314..4922e6cd3 100644 --- a/src/file-manager/fm-desktop-icon-view.c +++ b/src/file-manager/fm-desktop-icon-view.c @@ -227,7 +227,7 @@ desktop_icon_view_property_filter (GdkXEvent *gdk_xevent, } static void -fm_desktop_icon_view_finalize (GObject *object) +fm_desktop_icon_view_destroy (GtkObject *object) { FMDesktopIconView *icon_view; @@ -236,6 +236,7 @@ fm_desktop_icon_view_finalize (GObject *object) /* Remove desktop rescan timeout. */ if (icon_view->details->reload_desktop_timeout != 0) { g_source_remove (icon_view->details->reload_desktop_timeout); + icon_view->details->reload_desktop_timeout = 0; } eel_preferences_remove_callback (NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_ZOOM_LEVEL, @@ -248,6 +249,16 @@ fm_desktop_icon_view_finalize (GObject *object) bonobo_object_unref (icon_view->details->ui); icon_view->details->ui = NULL; } + + GTK_OBJECT_CLASS (parent_class)->destroy (object); +} + +static void +fm_desktop_icon_view_finalize (GObject *object) +{ + FMDesktopIconView *icon_view; + + icon_view = FM_DESKTOP_ICON_VIEW (object); g_free (icon_view->details); @@ -259,6 +270,8 @@ fm_desktop_icon_view_class_init (FMDesktopIconViewClass *class) { G_OBJECT_CLASS (class)->finalize = fm_desktop_icon_view_finalize; + GTK_OBJECT_CLASS (class)->destroy = fm_desktop_icon_view_destroy; + FM_DIRECTORY_VIEW_CLASS (class)->merge_menus = real_merge_menus; FM_DIRECTORY_VIEW_CLASS (class)->update_menus = real_update_menus; FM_DIRECTORY_VIEW_CLASS (class)->supports_zooming = real_supports_zooming; diff --git a/src/file-manager/fm-directory-view.c b/src/file-manager/fm-directory-view.c index 392122dc9..dfa45ba63 100644 --- a/src/file-manager/fm-directory-view.c +++ b/src/file-manager/fm-directory-view.c @@ -1604,6 +1604,7 @@ static void fm_directory_view_destroy (GtkObject *object) { FMDirectoryView *view; + GList *node, *next; view = FM_DIRECTORY_VIEW (object); @@ -1622,17 +1623,6 @@ fm_directory_view_destroy (GtkObject *object) fm_directory_view_stop (view); fm_directory_view_clear (view); - EEL_CALL_PARENT (GTK_OBJECT_CLASS, destroy, (object)); -} - -static void -fm_directory_view_finalize (GObject *object) -{ - FMDirectoryView *view; - GList *node, *next; - - view = FM_DIRECTORY_VIEW (object); - for (node = view->details->scripts_directory_list; node != NULL; node = next) { next = node->next; remove_directory_from_scripts_directory_list (view, node->data); @@ -1643,20 +1633,14 @@ fm_directory_view_finalize (GObject *object) remove_directory_from_templates_directory_list (view, node->data); } - - nautilus_directory_unref (view->details->model); - view->details->model = NULL; - nautilus_file_unref (view->details->directory_as_file); + remove_update_menus_timeout_callback (view); + remove_update_status_idle_callback (view); if (view->details->display_selection_idle_id != 0) { g_source_remove (view->details->display_selection_idle_id); + view->details->display_selection_idle_id = 0; } - remove_update_menus_timeout_callback (view); - remove_update_status_idle_callback (view); - - fm_directory_view_ignore_hidden_file_preferences (view); - eel_preferences_remove_callback (NAUTILUS_PREFERENCES_SHOW_HIDDEN_FILES, filtering_changed_callback, view); eel_preferences_remove_callback (NAUTILUS_PREFERENCES_SHOW_BACKUP_FILES, @@ -1674,10 +1658,32 @@ fm_directory_view_finalize (GObject *object) eel_preferences_remove_callback (NAUTILUS_PREFERENCES_SORT_DIRECTORIES_FIRST, sort_directories_first_changed_callback, view); - g_hash_table_destroy (view->details->non_ready_files); + if (view->details->model) { + nautilus_directory_unref (view->details->model); + view->details->model = NULL; + } + + if (view->details->directory_as_file) { + nautilus_file_unref (view->details->directory_as_file); + view->details->directory_as_file = NULL; + } + + fm_directory_view_ignore_hidden_file_preferences (view); eel_remove_weak_pointer (&view->details->ui); + EEL_CALL_PARENT (GTK_OBJECT_CLASS, destroy, (object)); +} + +static void +fm_directory_view_finalize (GObject *object) +{ + FMDirectoryView *view; + + view = FM_DIRECTORY_VIEW (object); + + g_hash_table_destroy (view->details->non_ready_files); + g_free (view->details); EEL_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); diff --git a/src/file-manager/fm-icon-view.c b/src/file-manager/fm-icon-view.c index ab79d165d..995d50fa0 100644 --- a/src/file-manager/fm-icon-view.c +++ b/src/file-manager/fm-icon-view.c @@ -219,7 +219,7 @@ GNOME_CLASS_BOILERPLATE (FMIconView, fm_icon_view, FMDirectoryView, FM_TYPE_DIRECTORY_VIEW) static void -fm_icon_view_finalize (GObject *object) +fm_icon_view_destroy (GtkObject *object) { FMIconView *icon_view; @@ -231,16 +231,32 @@ fm_icon_view_finalize (GObject *object) if (icon_view->details->ui != NULL) { bonobo_ui_component_unset_container (icon_view->details->ui, NULL); bonobo_object_unref (icon_view->details->ui); + icon_view->details->ui = NULL; } if (icon_view->details->react_to_icon_change_idle_id != 0) { g_source_remove (icon_view->details->react_to_icon_change_idle_id); + icon_view->details->react_to_icon_change_idle_id = 0; } /* kill any sound preview process that is ongoing */ preview_audio (icon_view, NULL, FALSE); - nautilus_file_list_free (icon_view->details->icons_not_positioned); + if (icon_view->details->icons_not_positioned) { + nautilus_file_list_free (icon_view->details->icons_not_positioned); + icon_view->details->icons_not_positioned = NULL; + } + + EEL_CALL_PARENT (GTK_OBJECT_CLASS, destroy, (object)); +} + + +static void +fm_icon_view_finalize (GObject *object) +{ + FMIconView *icon_view; + + icon_view = FM_ICON_VIEW (object); g_free (icon_view->details); @@ -2789,6 +2805,8 @@ fm_icon_view_class_init (FMIconViewClass *klass) fm_directory_view_class = FM_DIRECTORY_VIEW_CLASS (klass); G_OBJECT_CLASS (klass)->finalize = fm_icon_view_finalize; + + GTK_OBJECT_CLASS (klass)->destroy = fm_icon_view_destroy; GTK_WIDGET_CLASS (klass)->screen_changed = fm_icon_view_screen_changed; diff --git a/src/file-manager/fm-list-model.c b/src/file-manager/fm-list-model.c index cbca7598e..44b6cb481 100644 --- a/src/file-manager/fm-list-model.c +++ b/src/file-manager/fm-list-model.c @@ -966,20 +966,41 @@ fm_list_model_get_column_number (FMListModel *model, } static void -fm_list_model_finalize (GObject *object) +fm_list_model_dispose (GObject *object) { FMListModel *model; int i; model = FM_LIST_MODEL (object); - for (i = 0; i < model->details->columns->len; i++) { - g_object_unref (model->details->columns->pdata[i]); + if (model->details->columns) { + for (i = 0; i < model->details->columns->len; i++) { + g_object_unref (model->details->columns->pdata[i]); + } + g_ptr_array_free (model->details->columns, TRUE); + model->details->columns = NULL; + } + + if (model->details->files) { + g_sequence_free (model->details->files); + model->details->files = NULL; + } + + if (model->details->reverse_map) { + g_hash_table_destroy (model->details->reverse_map); + model->details->reverse_map = NULL; } - g_ptr_array_free (model->details->columns, TRUE); + + EEL_CALL_PARENT (G_OBJECT_CLASS, dispose, (object)); +} + +static void +fm_list_model_finalize (GObject *object) +{ + FMListModel *model; + + model = FM_LIST_MODEL (object); - g_sequence_free (model->details->files); - g_hash_table_destroy (model->details->reverse_map); g_free (model->details->sort_attribute); g_free (model->details); @@ -1006,6 +1027,7 @@ fm_list_model_class_init (FMListModelClass *klass) parent_class = g_type_class_peek_parent (klass); object_class->finalize = fm_list_model_finalize; + object_class->dispose = fm_list_model_dispose; } static void diff --git a/src/file-manager/fm-list-view.c b/src/file-manager/fm-list-view.c index fb8930958..bc785e4b0 100644 --- a/src/file-manager/fm-list-view.c +++ b/src/file-manager/fm-list-view.c @@ -1938,6 +1938,11 @@ fm_list_view_dispose (GObject *object) g_object_unref (list_view->details->drag_dest); list_view->details->drag_dest = NULL; } + + if (list_view->details->ui != NULL) { + bonobo_ui_component_unset_container (list_view->details->ui, NULL); + bonobo_object_unref (list_view->details->ui); + } G_OBJECT_CLASS (parent_class)->dispose (object); } @@ -1954,11 +1959,6 @@ fm_list_view_finalize (GObject *object) } if (list_view->details->double_click_path[1]) { gtk_tree_path_free (list_view->details->double_click_path[1]); - } - - if (list_view->details->ui != NULL) { - bonobo_ui_component_unset_container (list_view->details->ui, NULL); - bonobo_object_unref (list_view->details->ui); } gtk_target_list_unref (list_view->details->source_target_list); |