[Top][All Lists]

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

Re: GC missed a reference

From: Bill Schottstaedt
Subject: Re: GC missed a reference
Date: Sun, 25 Apr 2004 04:09:54 -0700
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040308

On the "#<freed cell 0x40b66060; GC missed a reference>" bug reported
a while ago, I now think the problem is in symbols.c, in the function
scm_mem2symbol, and involves the call of scm_i_rehash.  If I
gc-protect the symbol referred to in the error message (via
scm_permanent_object), or if I comment out the rehash, everything is fine.
I notice that if the symbol table is drastically reduced in size
(after closing a large let, for example), the dead entries may not
always be removed; a subsequent gc leaves the cells in the symbol
table, and scm_cell or someone then reallocates them as a number,
or whatever, so you end up with a symbol table full of non-symbols,
causing havoc for "apropos".  Unfortunately, I have not yet found
a simple case.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]