diff options
author | Ettore Perazzoli <ettore@src.gnome.org> | 2003-04-26 01:03:51 +0800 |
---|---|---|
committer | Ettore Perazzoli <ettore@src.gnome.org> | 2003-04-26 01:03:51 +0800 |
commit | 1fbfda671f3df4e0a8b72e3886350ac6bce9a806 (patch) | |
tree | eb42793305baad568552d57968ba4cb70ea14ff6 /shell/e-corba-storage.c | |
parent | 1564340ffe047e101e6ad235f4ebeb900a7db7b3 (diff) | |
download | gsoc2013-evolution-1fbfda671f3df4e0a8b72e3886350ac6bce9a806.tar.gz gsoc2013-evolution-1fbfda671f3df4e0a8b72e3886350ac6bce9a806.tar.zst gsoc2013-evolution-1fbfda671f3df4e0a8b72e3886350ac6bce9a806.zip |
(async_open_cb): Added a missing unref of the
storage in the closure.
(async_open_folder_idle): Add the pending open to the pending open
list before calling asyncOpenFolder, instead of after.
svn path=/trunk/; revision=20968
Diffstat (limited to 'shell/e-corba-storage.c')
-rw-r--r-- | shell/e-corba-storage.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/shell/e-corba-storage.c b/shell/e-corba-storage.c index 49ec7403ae..b7ab36c3f8 100644 --- a/shell/e-corba-storage.c +++ b/shell/e-corba-storage.c @@ -596,6 +596,7 @@ async_open_cb (BonoboListener *listener, const char *event_name, (* closure->callback) (closure->storage, result, closure->path, closure->data); if (closure != orig_closure) { + g_object_unref (orig_closure->storage); g_free (closure->path); g_free (closure); } @@ -636,6 +637,8 @@ async_open_folder_idle (gpointer data) listener = bonobo_listener_new (async_open_cb, closure); corba_listener = bonobo_object_corba_objref (BONOBO_OBJECT (listener)); + priv->pending_opens = g_list_prepend (priv->pending_opens, closure); + CORBA_exception_init (&ev); GNOME_Evolution_Storage_asyncOpenFolder (priv->storage_interface, closure->path, @@ -647,10 +650,12 @@ async_open_folder_idle (gpointer data) g_object_unref (closure->storage); g_free (closure->path); g_free (closure); + + priv->pending_opens = g_list_delete_link (priv->pending_opens, + priv->pending_opens); } CORBA_exception_free (&ev); - priv->pending_opens = g_list_prepend (priv->pending_opens, closure); return FALSE; } |