diff options
Diffstat (limited to 'addressbook/backend/ebook/e-card-cursor.c')
-rw-r--r-- | addressbook/backend/ebook/e-card-cursor.c | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/addressbook/backend/ebook/e-card-cursor.c b/addressbook/backend/ebook/e-card-cursor.c index 4c96338a52..0aa9c8c1e0 100644 --- a/addressbook/backend/ebook/e-card-cursor.c +++ b/addressbook/backend/ebook/e-card-cursor.c @@ -26,32 +26,36 @@ static void e_card_cursor_dispose (GObject *object) { ECardCursor *cursor = E_CARD_CURSOR (object); - CORBA_Environment ev; - - CORBA_exception_init (&ev); - GNOME_Evolution_Addressbook_CardCursor_unref( cursor->priv->corba_cursor, &ev ); + if (cursor->priv) { + CORBA_Environment ev; - if (ev._major != CORBA_NO_EXCEPTION) { - g_warning("e_card_cursor_destroy: Exception unreffing " - "corba cursor.\n"); - CORBA_exception_free (&ev); CORBA_exception_init (&ev); - } - CORBA_Object_release (cursor->priv->corba_cursor, &ev); + GNOME_Evolution_Addressbook_CardCursor_unref( cursor->priv->corba_cursor, &ev ); - if (ev._major != CORBA_NO_EXCEPTION) { - g_warning("e_card_cursor_destroy: Exception releasing " - "corba cursor.\n"); - } + if (ev._major != CORBA_NO_EXCEPTION) { + g_warning("e_card_cursor_destroy: Exception unreffing " + "corba cursor.\n"); + CORBA_exception_free (&ev); + CORBA_exception_init (&ev); + } - CORBA_exception_free (&ev); + CORBA_Object_release (cursor->priv->corba_cursor, &ev); + + if (ev._major != CORBA_NO_EXCEPTION) { + g_warning("e_card_cursor_destroy: Exception releasing " + "corba cursor.\n"); + } + + CORBA_exception_free (&ev); - if ( cursor->priv ) g_free ( cursor->priv ); + cursor->priv = NULL; + } - G_OBJECT_CLASS (parent_class)->dispose (object); + if (G_OBJECT_CLASS (parent_class)->dispose) + G_OBJECT_CLASS (parent_class)->dispose (object); } /** |