[mcclim-devel] incremental-redisplay cons cell memory leak
Andreas Fuchs
asf at boinkor.net
Wed Apr 26 18:21:23 UTC 2006
Hi all,
a long time ago, I discovered that beirc crashes after 3 or 4 days of
running. Now I managed to narrow it down to the incremental redisplay
code. It seems that the children-updating-output slot of updating
output records has duplicate ORs (68 unique ORs vs. 1765 non-unique)
added, which makes sbcl go boom pretty soon.
This patch fixes it, but I'm not sure if I'm solving the root of the
problem. Tim should maybe have a look at it (:
Index: incremental-redisplay.lisp
===================================================================
RCS file: /project/mcclim/cvsroot/mcclim/incremental-redisplay.lisp,v
retrieving revision 1.60
diff -u -r1.60 incremental-redisplay.lisp
--- incremental-redisplay.lisp 22 Apr 2006 15:31:27 -0000 1.60
+++ incremental-redisplay.lisp 26 Apr 2006 18:12:40 -0000
@@ -442,7 +442,7 @@
((child updating-output-record-mixin) record)
(declare (ignore record))
(if (parent-updating-output child)
- (push child (children-updating-output (parent-updating-output child)))
+ (pushnew child (children-updating-output (parent-updating-output child)))
nil))
(oh, and things seem a bit snappier with it, obviously (-:)
Cheers,
--
Andreas Fuchs, (http://|im:asf@|mailto:asf@)boinkor.net, antifuchs
More information about the mcclim-devel
mailing list