On Thu, 2003-04-24 at 13:36, Dan Winship wrote: > > + (async_open_folder_idle): Add the pending open to the pending open > > + list before calling asyncOpenFolder, instead of after. > > I guess the listener is being called before asyncOpenFolder returns? Yeah, the standard async bug. :-) > > + priv->pending_opens = g_list_remove_link (priv->pending_opens, > > + priv->pending_opens); > > That leaks a GList *. You want g_list_remove (priv->pending_opens, > closure); Ooops, I meant g_list_delete_link(). -- Ettore
Index: ChangeLog =================================================================== RCS file: /cvs/gnome/evolution/shell/ChangeLog,v retrieving revision 1.1255 diff -u -p -r1.1255 ChangeLog --- ChangeLog 23 Apr 2003 19:16:18 -0000 1.1255 +++ ChangeLog 24 Apr 2003 18:16:07 -0000 @@ -1,18 +1,26 @@ +2003-04-24 Ettore Perazzoli <ettore ximian com> + + [#41059] + + * e-corba-storage.c (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. + 2003-04-22 Anna Marie Dirks <anna ximian com> - * e-shell-settings-dialog.c (init): Add appropriate padding + * e-shell-settings-dialog.c (init): Add appropriate padding to the Evolution Settings window. This is another bit of the fix for #41392. - * e-corba-config-page.c (e_corba_config_page_construct): Add + * e-corba-config-page.c (e_corba_config_page_construct): Add appropriate padding to the corba_config_page widget. Partial fix for #41392. - 2003-04-23 Anna Marie Dirks <anna ximian com> - *glade/e-folder-list.glade : replaced buttons with stock - buttons and added HIG-blessed spacing. Fixes 41145. + * glade/e-folder-list.glade: replaced buttons with stock buttons + and added HIG-blessed spacing. Fixes 41145. 2003-04-22 Anna Marie Dirks <anna ximian com> @@ -24,7 +32,6 @@ Group" . Partially fixes 41038. (rename_shortcut_cb): Corrected the label capitalization for Rename dialog. Fixes 41567. - 2003-04-21 Chris Toshok <toshok ximian com> Index: e-corba-storage.c =================================================================== RCS file: /cvs/gnome/evolution/shell/e-corba-storage.c,v retrieving revision 1.55 diff -u -p -r1.55 e-corba-storage.c --- e-corba-storage.c 17 Apr 2003 18:46:07 -0000 1.55 +++ e-corba-storage.c 24 Apr 2003 18:16:07 -0000 @@ -596,6 +596,7 @@ async_open_cb (BonoboListener *listener, (* 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; }
Attachment:
signature.asc
Description: This is a digitally signed message part