Show
Ignore:
Timestamp:
07/03/08 23:23:38 (5 months ago)
Author:
ruoso
Message:

[smop] still more work on p6opaque, few bugs fixed, some slime bugs still.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • v6/smop/src/smop_slime_frame.c

    r20100 r21201  
    174174      SMOP__Object* node = ((smop_slime_frame_struct*)frame)->nodes[pc]; 
    175175      smop_lowlevel_unlock(frame); 
    176       SMOP_DISPATCH(interpreter,SMOP_RI(node),SMOP__ID__setr, 
    177                     SMOP__NATIVE__capture_create(interpreter,node,(SMOP__Object*[]){value, NULL},NULL)); 
     176      SMOP_DISPATCH(interpreter,SMOP_RI(node),SMOP__ID__result, 
     177                    SMOP__NATIVE__capture_create(interpreter,SMOP_REFERENCE(interpreter,node),(SMOP__Object*[]){value, NULL},NULL)); 
    178178      SMOP_RELEASE(interpreter,frame); 
    179179      ret = SMOP__NATIVE__bool_true; 
     
    253253      assert(SMOP_RI(count) == (SMOP__ResponderInterface*)SMOP__NATIVE__int); 
    254254      int c = SMOP__NATIVE__int_fetch(count); 
     255      SMOP_RELEASE(interpreter, count); 
    255256      smop_lowlevel_rdlock(frame); 
    256257      int pc = ((smop_slime_frame_struct*)frame)->pc; 
     
    260261      SMOP__Object* res = SMOP_DISPATCH(interpreter,SMOP_RI(node),SMOP__ID__result, 
    261262                                        SMOP__NATIVE__capture_create(interpreter,SMOP_REFERENCE(interpreter,node),NULL,NULL)); 
    262       SMOP_DISPATCH(interpreter,SMOP_RI(thisnode),SMOP__ID__result, 
    263                     SMOP__NATIVE__capture_create(interpreter,thisnode,(SMOP__Object*[]){res,NULL},NULL)); 
     263      SMOP_RELEASE(interpreter, 
     264                   SMOP_DISPATCH(interpreter,SMOP_RI(thisnode),SMOP__ID__result, 
     265                                 SMOP__NATIVE__capture_create(interpreter, 
     266                                                              SMOP_REFERENCE(interpreter,thisnode),(SMOP__Object*[]){res,NULL},NULL))); 
    264267      ret = SMOP__NATIVE__bool_true; 
    265268      SMOP_RELEASE(interpreter,frame); 
     
    277280      int c = SMOP__NATIVE__int_fetch(count); 
    278281      int t = SMOP__NATIVE__int_fetch(target); 
     282      SMOP_RELEASE(interpreter, count); 
     283      SMOP_RELEASE(interpreter, target); 
    279284      smop_lowlevel_rdlock(frame); 
    280285      int pc = ((smop_slime_frame_struct*)frame)->pc; 
     
    285290                                        SMOP__NATIVE__capture_create(interpreter,SMOP_REFERENCE(interpreter,node),NULL,NULL)); 
    286291      SMOP_DISPATCH(interpreter,SMOP_RI(thisnode),SMOP__ID__responder, 
    287                     SMOP__NATIVE__capture_create(interpreter,thisnode,(SMOP__Object*[]){res,NULL},NULL)); 
     292                    SMOP__NATIVE__capture_create(interpreter, 
     293                                                 SMOP_REFERENCE(interpreter,thisnode), 
     294                                                 (SMOP__Object*[]){(SMOP__Object*)SMOP_RI(res),NULL},NULL)); 
     295      SMOP_RELEASE(interpreter, res); 
    288296      ret = SMOP__NATIVE__bool_true; 
    289297      SMOP_RELEASE(interpreter,frame); 
     
    325333                                        SMOP__NATIVE__capture_create(interpreter,SMOP_REFERENCE(interpreter,node),NULL,NULL)); 
    326334      SMOP_DISPATCH(interpreter,SMOP_RI(thisnode),SMOP__ID__identifier, 
    327                     SMOP__NATIVE__capture_create(interpreter,thisnode,(SMOP__Object*[]){res,NULL},NULL)); 
     335                    SMOP__NATIVE__capture_create(interpreter,SMOP_REFERENCE(interpreter,thisnode),(SMOP__Object*[]){res,NULL},NULL)); 
    328336      SMOP_RELEASE(interpreter,count); 
    329337      SMOP_RELEASE(interpreter,target);