Re: [evolution-patches] fix for the bug #274406 [calendar]



This occurs if the status of the received in cal_opened_cb is not OK. So
i think we can then remove the extra unref present there. This causes
the problem. As soon as the signal is emitted the cal_opened_cb is
called which does an additional unref and thus causes a crash in
async_signal_idle_cb. Have attached the modified patch.

thanks, chenthill.

On Tue, 2005-04-26 at 19:32 +0200, Rodrigo Moya wrote:
> On Tue, 2005-04-26 at 21:55 +0530, chenthill wrote:
> > Hi,
> >   Have attached the fix for the bug.
> > 
> hmm, I don't think this is right, we have already a reference to the
> client, which is what we were adding to the hash table (the client we
> add is created 3 lines above), so why is this needed?
> 
> It seems to me the bug is about the async_signal_idle_cb is being called
> on an already-destroyed client, rather than missing a reference. In
> fact, IIRC, we already fixed some similar bug, can you still reproduce
> this one?
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/calendar/ChangeLog,v
retrieving revision 1.2714
diff -u -p -r1.2714 ChangeLog
--- ChangeLog	18 Apr 2005 14:32:16 -0000	1.2714
+++ ChangeLog	27 Apr 2005 02:40:16 -0000
@@ -1,3 +1,9 @@
+2005-04-26  Chenthill Palanisamy  <pchenthill novell com>
+
+	Fixes #274406
+	* gui/alarm-notify/alarm-notify.c: (cal_opened_cb): Removed the additional
+	unref present.
+
 2005-04-18  Chenthill Palanisamy  <pchenthill novell com>
 
 	Fixes #274476
Index: gui/alarm-notify/alarm-notify.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/alarm-notify/alarm-notify.c,v
retrieving revision 1.48
diff -u -p -r1.48 alarm-notify.c
--- gui/alarm-notify/alarm-notify.c	28 Feb 2005 23:38:48 -0000	1.48
+++ gui/alarm-notify/alarm-notify.c	27 Apr 2005 02:40:16 -0000
@@ -307,7 +307,6 @@ cal_opened_cb (ECal *client, ECalendarSt
 				     e_cal_get_uri (client));
 		g_signal_handlers_disconnect_matched (G_OBJECT (client), G_SIGNAL_MATCH_DATA,
 						      0, 0, NULL, NULL, an);
-		g_object_unref (client);
 	}
 }
 


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