From c55ddc508dd4c9b558777f99604050f60b6158d3 Mon Sep 17 00:00:00 2001 From: Ettore Perazzoli Date: Mon, 11 Nov 2002 17:08:13 +0000 Subject: Make separate dispose/finalize overrides of just overriding destroy. * e-component-registry.c: Make separate dispose/finalize overrides of just overriding destroy. * e-corba-config-page.c: Likewise. * e-corba-storage.c: Likewise. * e-folder-type-registry.c: Likewise. * e-folder.c: Likewise. * e-history.c: Likewise. * e-local-folder.c: Likewise. * e-local-storage.c: Likewise. * e-shell-folder-selection-dialog.c: Likewise. * e-shell-folder-title-bar.c: Likewise. * e-shell-offline-handler.c: Likewise. * e-shell-settings-dialog.c: Likewise. * e-shell-user-creatable-items-handler.c: Likewise. * e-shell-view.c: Likewise. * e-shortcuts-view-model.c: Likewise. * e-shortcuts-view.c: Likewise. * e-shortcuts.c: Likewise. * e-storage-set-view.c: Likewise. * e-storage-set.c: Likewise. * e-storage.c: Likewise. * e-task-bar.c: Likewise. * e-task-widget.c: Likewise. * e-uri-schema-registry.c: Likewise. * evolution-activity-client.c: Likewise. * evolution-folder-selector-button.c: Likewise. * evolution-storage-listener.c: Likewise. * evolution-storage-set-view-listener.c: Likewise. * evolution-test-component.c: Likewise. svn path=/trunk/; revision=18695 --- shell/e-corba-storage.c | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) (limited to 'shell/e-corba-storage.c') diff --git a/shell/e-corba-storage.c b/shell/e-corba-storage.c index 642eef2f80..dd50d168ea 100644 --- a/shell/e-corba-storage.c +++ b/shell/e-corba-storage.c @@ -236,10 +236,10 @@ setup_storage_listener (ECorbaStorage *corba_storage) } -/* GtkObject methods. */ +/* GObject methods. */ static void -destroy (GtkObject *object) +impl_dispose (GObject *object) { CORBA_Environment ev; ECorbaStorage *corba_storage; @@ -253,10 +253,13 @@ destroy (GtkObject *object) if (priv->storage_interface != CORBA_OBJECT_NIL) { Bonobo_Unknown_unref (priv->storage_interface, &ev); CORBA_Object_release (priv->storage_interface, &ev); + priv->storage_interface = CORBA_OBJECT_NIL; } - if (priv->storage_listener_interface != CORBA_OBJECT_NIL) + if (priv->storage_listener_interface != CORBA_OBJECT_NIL) { CORBA_Object_release (priv->storage_listener_interface, &ev); + priv->storage_listener_interface = CORBA_OBJECT_NIL; + } if (priv->storage_listener_servant != NULL) { PortableServer_ObjectId *object_id; @@ -267,15 +270,25 @@ destroy (GtkObject *object) POA_GNOME_Evolution_StorageListener__fini (priv->storage_listener_servant, &ev); CORBA_free (object_id); + + priv->storage_listener_servant = NULL; } CORBA_exception_free (&ev); - g_free (priv); + (* G_OBJECT_CLASS (parent_class)->dispose) (object); +} + +static void +impl_finalize (GObject *object) +{ + ECorbaStorage *corba_storage; + + corba_storage = E_CORBA_STORAGE (object); - corba_storage->priv = NULL; + g_free (corba_storage->priv); - (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); + (* G_OBJECT_CLASS (parent_class)->finalize) (object); } @@ -655,11 +668,12 @@ corba_class_init (void) static void class_init (ECorbaStorageClass *klass) { - GtkObjectClass *object_class; + GObjectClass *object_class; EStorageClass *storage_class; - object_class = GTK_OBJECT_CLASS (klass); - object_class->destroy = destroy; + object_class = G_OBJECT_CLASS (klass); + object_class->dispose = impl_dispose; + object_class->finalize = impl_finalize; storage_class = E_STORAGE_CLASS (klass); storage_class->async_create_folder = async_create_folder; -- cgit v1.2.3