[888] in BarnOwl Developers
[D-O-H] r876 - branches/barnowl_sqlite/owl
daemon@ATHENA.MIT.EDU (nelhage@MIT.EDU)
Thu Oct 29 18:10:48 2009
Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
To: dirty-owl-hackers@mit.edu
From: nelhage@MIT.EDU
Reply-to: dirty-owl-hackers@MIT.EDU
Date: Tue, 15 Jan 2008 16:22:44 -0500 (EST)
Author: nelhage
Date: 2008-01-15 16:22:44 -0500 (Tue, 15 Jan 2008)
New Revision: 876
Modified:
branches/barnowl_sqlite/owl/functions.c
branches/barnowl_sqlite/owl/message.c
branches/barnowl_sqlite/owl/owl.c
Log:
Fix a crash whenever we add a message to the messagelist
Modified: branches/barnowl_sqlite/owl/functions.c
===================================================================
--- branches/barnowl_sqlite/owl/functions.c 2008-01-15 19:40:02 UTC (rev 875)
+++ branches/barnowl_sqlite/owl/functions.c 2008-01-15 21:22:44 UTC (rev 876)
@@ -174,8 +174,8 @@
owl_message_create_admin(m, header, body);
/* add it to the global list and current view */
+ owl_view_consider_message(owl_global_get_current_view(&g), m);
owl_messagelist_append_element(owl_global_get_msglist(&g), m);
- owl_view_consider_message(owl_global_get_current_view(&g), m);
/* do followlast if necessary */
if (owl_global_should_followlast(&g)) owl_function_lastmsg_noredisplay();
Modified: branches/barnowl_sqlite/owl/message.c
===================================================================
--- branches/barnowl_sqlite/owl/message.c 2008-01-15 19:40:02 UTC (rev 875)
+++ branches/barnowl_sqlite/owl/message.c 2008-01-15 21:22:44 UTC (rev 876)
@@ -929,6 +929,16 @@
if (ptr) ptr[0]='\0';
}
+void owl_message_retain(owl_message *m)
+{
+ SvREFCNT_inc((SV*)m);
+}
+
+void owl_message_release(owl_message *m)
+{
+ SvREFCNT_dec((SV*)m);
+}
+
void owl_message_free(owl_message *m)
{
owl_message_invalidate_format(m);
Modified: branches/barnowl_sqlite/owl/owl.c
===================================================================
--- branches/barnowl_sqlite/owl/owl.c 2008-01-15 19:40:02 UTC (rev 875)
+++ branches/barnowl_sqlite/owl/owl.c 2008-01-15 21:22:44 UTC (rev 876)
@@ -615,6 +615,8 @@
return 0;
}
+ owl_message_retain(m);
+
/* add it to the global list */
owl_messagelist_append_element(owl_global_get_msglist(&g), m);
/* add it to any necessary views; right now there's only the current view */
@@ -681,6 +683,7 @@
/* log the message if we need to */
owl_log_message(m);
+ owl_message_release(m);
return 1;
}