... hm. I just remembered Ulrich Drepper and Wolfram Gloger
(I think on libc-alpha a while back but it may have been in some paper
somewhere) that the glibc malloc hooks are pretty much completely broken
and don't work properly,
If they're partially broken they might still work properly? ;-)
especially in glibc 2.4+: as far as I can tell
we don't rely on those hooks except when terminating (to a very limited
degree) and as a debugging hack with no effect on memory-allocation
I believe that is true. There are some very old comments about magic
free hooks, but IIRC the code that used them is also inside the
There was a long-standing bug in "large string allocation", where the
cons counter didn't get bumped properly for large strings. It was
possible to do something like `(while t (make-string 1000000 ?A))' and
crash XEmacs in short order. Martin Buchholz submitted a patch for
that, which I applied based on my limited understanding that it was
correct and the strength of Martin's reputation for finickiness.
(if so, damn, I'll have to actually do some *work* to diagnose
rather than leaping directly to the solution by magic. :) )
Looking at the large strings first is insider information, not magic,
but it might save you some work.
However, the bug was not that they never get collected---if something
else triggered a GC they got collected. I wouldn't bet on it being
related, but you have to start somewhere....
XEmacs-Beta mailing list