Branch: Tag:

1999-05-12

1999-05-12 04:42:25 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>

bugfix for `->

Rev: src/interpreter.h:1.7

493:       CASE(F_LTOSVAL2);    sp[0]=sp[-1]; -  lvalue_to_svalue_no_free(sp-1,sp-3); +  sp[-1].type=T_INT; +  sp++; +  lvalue_to_svalue_no_free(sp-2,sp-4);       /* this is so that foo+=bar (and similar things) will be faster, this    * is done by freeing the old reference to foo after it has been pushed
501:    * and then the low array/multiset/mapping manipulation routines can be    * destructive if they like    */ -  if( (1 << sp[-1].type) & ( BIT_ARRAY | BIT_MULTISET | BIT_MAPPING | BIT_STRING )) +  if( (1 << sp[-2].type) & ( BIT_ARRAY | BIT_MULTISET | BIT_MAPPING | BIT_STRING ))    {    struct svalue s;    s.type=T_INT;    s.subtype=0;    s.u.integer=0; -  assign_lvalue(sp-3,&s); +  assign_lvalue(sp-4,&s);    } -  sp++; +     break;          CASE(F_ADD_TO_AND_POP);    sp[0]=sp[-1]; -  lvalue_to_svalue_no_free(sp-1,sp-3); +  sp[-1].type=T_INT; +  sp++; +  lvalue_to_svalue_no_free(sp-2,sp-4);       /* this is so that foo+=bar (and similar things) will be faster, this    * is done by freeing the old reference to foo after it has been pushed
523:    * and then the low array/multiset/mapping manipulation routines can be    * destructive if they like    */ -  if( (1 << sp[-1].type) & ( BIT_ARRAY | BIT_MULTISET | BIT_MAPPING | BIT_STRING )) +  if( (1 << sp[-2].type) & ( BIT_ARRAY | BIT_MULTISET | BIT_MAPPING | BIT_STRING ))    {    struct svalue s;    s.type=T_INT;    s.subtype=0;    s.u.integer=0; -  assign_lvalue(sp-3,&s); +  assign_lvalue(sp-4,&s);    } -  sp++; +     f_add(2);    assign_lvalue(sp-3,sp-1);    pop_n_elems(3);