Core dump report
    Lendvai Attila 
    Attila.Lendvai at netvisor.hu
       
    Wed Aug  4 06:08:59 PDT 2004
    
    
  
hi!
in prims.slate:
body at CompiledMethodTraits ensure: unwindBlock at CompiledMethodTraits
[
  interpreter
    apply: body pointer!(CompiledMethod pointer) cast
    to: Nil
    arity: 0
    withOptionals: Nil.
  interpreter lexicalContext unwindBlock: unwindBlock
] `pidginPrimitive. 
in vm.slate:
i@(Interpreter pointer) apply: method to: args arity: n withOptionals:
opts
[| method!(CompiledMethod pointer) args!(ObjectPointer pointer)
opts!(OopArray pointer) lexicalContext!(LexicalContext pointer) inputs |
   lexicalContext: (CurrentMemory newOopArray: LexicalContextProto
sized: method localVariables asSmallInt)!(LexicalContext pointer) cast.
   inputs: method inputVariables asSmallInt.
   args!(Word pointer) cast
     copyWords: inputs
     into: lexicalContext variables!(Word pointer) cast.
...
So the upper one calls the lower one, with to: Nil (probably instead of
ObjectHeap NilObject) and it causes the apply method to access
0x00000000 as the value of Nil is 0.
I don't know exactly what's happening there, so I leave it for Lee... :)
Could be that apply and friends should be prepared for Nil...
Make sure to look around in there (prims.slate), because there are quite
a few Nil's used all around. Could be other problems, too. (If it is a
problem at all, as opposed to me screwing up something)
Happy coding,
- 101
    
    
More information about the Slate
mailing list