And in addition to this assert, there is also one more that fail and it is StackInterpreter >> createActualMessageTo: lookupClass
the assert: self assert: ((objectMemory isIntegerObject: messageSelector) or: [objectMemory addressCouldBeObj: messageSelector]).
After debugging, I notice that it fails because, it is NOT an integer, and #addressCouldBeObj: all answers true, but "(self headerType: address) ~= HeaderTypeGC"
This means that such object, has the header type HeaderTypeGC.
so...maybe with this and the previous mail it can ring a bell in someone's head.
Thanks a lot in advance for any hint you can point me.
Mariano
Hi Eliot. I am having some asserts failing while running my tests. Most of them during the sweep phase of the GC.
The two places where it fails is in
- NewCoObjectMemory >> lastPointerWhileForwarding: oop
if fails the assert: self assert: (coInterpreter cCoerceSimple: methodHeader to: #'CogMethod *') cmType = CMMethod.
In different runs, the cmType answer me 1 (CMFree)
- NewCoObjectMemory >> lastPointerOf: oop recordWeakRoot: recordWeakRoot "<Boolean>"
and it fails in the same assert: self assert: (coInterpreter cCoerceSimple: methodHeader to: #'CogMethod *') cmType = CMMethod.
In different runs, I got values 0 or 6. BTW....seing:
initializeCogMethodConstants
CMOpenPIC := 1 + (CMClosedPIC := 1 + (CMBlock := 1 +(CMMethod := 1 + (CMFree := 1))))
I cannot understand how can I get 0 or 6....
Anyway, my question is if you have a clue of what can be happening so that those asserts are failing. I am using Objects as methods, but normal objects (subclasses of ProtoObject).
Thanks in advance,
mariano