void fm_tab_page_destroy(GtkObject *object) #endif { FmTabPage* page = FM_TAB_PAGE(object); /* g_debug("fm_tab_page_destroy"); */ free_folder(page); if(page->nav_history) { g_object_unref(page->nav_history); page->nav_history = NULL; } if(page->folder_view) { g_signal_handlers_disconnect_by_func(page->folder_view, on_folder_view_sel_changed, page); page->folder_view = NULL; } #if GTK_CHECK_VERSION(3, 0, 0) if(GTK_WIDGET_CLASS(fm_tab_page_parent_class)->destroy) (*GTK_WIDGET_CLASS(fm_tab_page_parent_class)->destroy)(object); #else if(GTK_OBJECT_CLASS(fm_tab_page_parent_class)->destroy) (*GTK_OBJECT_CLASS(fm_tab_page_parent_class)->destroy)(object); #endif }
void fm_tab_page_destroy(GtkObject *object) #endif { FmTabPage* page = FM_TAB_PAGE(object); FmFolder* folder = fm_tab_page_get_folder(page); // so we don't call these on a dead object disconnect_folder(page, folder); g_signal_handlers_disconnect_by_func(page->folder_view, on_folder_view_sel_changed, page); g_signal_handlers_disconnect_by_func(page->folder_view, on_folder_view_loaded, page); }
static void fm_tab_page_finalize(GObject *object) { FmTabPage *page; int i; g_return_if_fail(object != NULL); g_return_if_fail(FM_IS_TAB_PAGE(object)); page = FM_TAB_PAGE(object); g_object_unref(page->nav_history); for(i = 0; i < FM_STATUS_TEXT_NUM; ++i) g_free(page->status_text[i]); G_OBJECT_CLASS(fm_tab_page_parent_class)->finalize(object); }