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

Reply via email to