[m-dev.] bug in solutions?
Fergus Henderson
fjh at cs.mu.oz.au
Mon Apr 21 15:37:40 AEST 1997
Peter Schachte, you wrote:
>
> In looking at the code for solutions in non-GC grades, I noticed this
> code (comments trimmed):
>
> Word *temp_hp = hp;
> hp = (Word) solutions_heap_pointer;
> save_transient_registers();
> r3 = deep_copy(r1, (Word *) type_info_fv, (Word *) saved_hp_fv,
> heap_zone->top);
> restore_transient_registers();
> list_fv = list_cons(r3, list_fv);
> solutions_heap_pointer = (Word *) hp;
> hp = temp_hp;
>
>
> If the solutions heap should overflow during the deep_copy in a grade
> with a non-conservative garbage collector, wouldn't we be in
> deep_dodo? hp points one place, and heap_zone's fields point
> somewhere else entirely.
I discussed this with Tyson. Currently the non-conservative garbage
collector hasn't been implemented yet, and so we're not entirely
sure what invariants it will rely on. For the moment we'll leave
the code as is; we may need to revisit this issue later on, when
implementing the non-conservative collector.
--
Fergus Henderson <fjh at cs.mu.oz.au> | "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh> | of excellence is a lethal habit"
PGP: finger fjh at 128.250.37.3 | -- the last words of T. S. Garp.
More information about the developers
mailing list