[evolution-patches] Evolution Bug #63385



This bug is deemed critical and should be fixed before Evolution 2.0.0,
i.e. committed to gnome-2-8 branch:

http://bugzilla.ximian.com/show_bug.cgi?id=63385
"Evolution Crash - Adding two email ids with same name"

Description: "I added two email ids with the same name, evolution
prompted popup window, shall I add to existing ? I selected add to
existing. Again a popup box with primary email, 2nd email, 3rd email. I
selected the primary email address and then selected the secondary email
too (by default 2nd email will be none). I click 'Ok'. Evolution
crashed. But when I reopen evolution, the address got added
successfully."

Attached is a patch that fixes the crash.

-- 
Hans Petter
? 63385.patch
? log.diff
? out.diff
? libebook/new
Index: libebook/e-book.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/libebook/e-book.c,v
retrieving revision 1.39
diff -u -p -r1.39 e-book.c
--- libebook/e-book.c	19 Jul 2004 18:56:28 -0000	1.39
+++ libebook/e-book.c	7 Sep 2004 22:03:23 -0000
@@ -2871,8 +2871,9 @@ fetch_corba_book (EBook       *book,
 			     _("e_book_load_uri: Could not create EBookListener"));
 		return FALSE;
 	}
-	book->priv->listener_signal = g_signal_connect (book->priv->listener, "response",
-							G_CALLBACK (e_book_handle_response), book);
+	book->priv->listener_signal = g_signal_connect_object (book->priv->listener, "response",
+							       G_CALLBACK (e_book_handle_response),
+							       book, 0);
 
 	g_free (book->priv->uri);
 	book->priv->uri = uri;
@@ -3511,7 +3512,9 @@ e_book_dispose (GObject *object)
 		CORBA_exception_free (&ev);
 
 		if (book->priv->listener) {
-			g_signal_handler_disconnect (book->priv->listener, book->priv->listener_signal);
+			/* GLib bug compatibility */
+			if (g_signal_handler_is_connected (book->priv->listener, book->priv->listener_signal))
+				g_signal_handler_disconnect (book->priv->listener, book->priv->listener_signal);
 			bonobo_object_unref (book->priv->listener);
 			book->priv->listener = NULL;
 		}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]