On Sun, Jun 16, 2013 at 08:27:25AM +0200, Holger Hans Peter Freyther wrote:
> On Sun, Jun 09, 2013 at 09:18:00PM +0200, Holger Hans Peter Freyther wrote:

> Even on the interpreter:
> An instance of BlockContext
>   parent: BlockClosure>>ensure: (BlkClosure.st:271)
>   nativeIP: 0
>   ip: 8
>   sp: -1
>   receiver: UndefinedObject
>   method: [] in UndefinedObject>>executeStatements
>   outerContext: nil

It is really a "wonder" that this is working at all... 

VMpr_Object_basicAt
   int arg2 = -1;
   index_oop(oop1, arg2);


index_oop(oop, 4294967295)
   object = OOP_TO_OBJ(oop);
   intptr_t instanceSpec = GET_IN..
   return index_oop_spec(oop, object, index, instanceSpec);

index_oop_spec(oop, object, 4294967295, 57407)

   if (4294967295 < 1)
     return NULL

   index = 4294967295 - 1;
   ...
   case GST_ISP_POINTER:
     maxIndex = 15;
     index += instanceSpec >> ISP_NUMFIXEDFIELDS (5)
     return object->data[5]

...

Is this signed => unsigned conversion wanted or is it just some
luck that this is working out okay?

holger

_______________________________________________
help-smalltalk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-smalltalk

Reply via email to