Actually, no. Each cell has a length word and pointers always point
after this so the assertion check is correct. However the bug was
related to there being a zero-sized cell, i.e. a cell that only has a
length word, at the top of a segment. The cell address looks as though
it is at the start of the next segment and should have been adjusted.
Zero-sized cells can arise from Array.fromList [].
David
On 13/11/2017 16:48, James Clarke wrote:
Without having looked at the code in question, that assertion seems somewhat unusual;
a typical in-range check has >= and <. Perhaps it's a bit naive, but have you
tried that?
James
On 13 Nov 2017, at 16:32, Rob Arthan <[email protected]> wrote:
David,
Thanks again, but I've got two ProofPower source files further on and then I
get a different assertion failure:
Assertion failed: (val.AsAddress() > descr->originalAddress && val.AsAddress() <=
(char*)descr->originalAddress + descr->segmentSize), function RelocateAddressAt, file
savestate.cpp, line 929.
_______________________________________________
polyml mailing list
[email protected]
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml