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


On Mon, Dec 20, 2010 at 2:31 PM, Mariano Martinez Peck <marianopeck@gmail.com> wrote:
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