pike.git / src / interpret_functions.h

version» Context lines:

pike.git/src/interpret_functions.h:1:   /*   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: interpret_functions.h,v 1.140 2003/03/06 17:19:43 grubba Exp $ + || $Id: interpret_functions.h,v 1.141 2003/03/14 15:50:44 grubba Exp $   */      /*    * Opcode definitions for the interpreter.    */      #include "global.h"      #undef CJUMP   #undef AUTO_BIGNUM_LOOP_TEST
pike.git/src/interpret_functions.h:178:   }   #endif      #undef DO_INDEX   #define DO_INDEX do { \    struct svalue s; \    index_no_free(&s,Pike_sp-2,Pike_sp-1); \    pop_2_elems(); \    *Pike_sp=s; \    Pike_sp++; \ +  dmalloc_touch_svalue(Pike_sp-1); \    print_return_value(); \   }while(0)         OPCODE0(F_UNDEFINED, "push UNDEFINED", 0, {    push_int(0);    Pike_sp[-1].subtype=NUMBER_UNDEFINED;   });      OPCODE0(F_CONST0, "push 0", 0, {
pike.git/src/interpret_functions.h:853:      OPCODE1(F_ASSIGN_LOCAL, "assign local", 0, {    assign_svalue(Pike_fp->locals+arg1,Pike_sp-1);   });      OPCODE0(F_ASSIGN, "assign", 0, {    assign_lvalue(Pike_sp-3,Pike_sp-1);    free_svalue(Pike_sp-3);    free_svalue(Pike_sp-2);    Pike_sp[-3]=Pike_sp[-1]; +  dmalloc_touch_svalue(Pike_sp-1); +  dmalloc_touch_svalue(Pike_sp-2);    Pike_sp-=2;   });      OPCODE2(F_APPLY_ASSIGN_LOCAL_AND_POP, "apply, assign local and pop", 0, {    apply_svalue(&((Pike_fp->context.prog->constants + arg1)->sval),    DO_NOT_WARN((INT32)(Pike_sp - *--Pike_mark_sp)));    free_svalue(Pike_fp->locals+arg2);    Pike_fp->locals[arg2]=Pike_sp[-1]; -  +  dmalloc_touch_svalue(Pike_sp-1);    Pike_sp--;   });      OPCODE2(F_APPLY_ASSIGN_LOCAL, "apply, assign local", 0, {    apply_svalue(&((Pike_fp->context.prog->constants + arg1)->sval),    DO_NOT_WARN((INT32)(Pike_sp - *--Pike_mark_sp)));    assign_svalue(Pike_fp->locals+arg2, Pike_sp-1);   });      OPCODE0(F_ASSIGN_AND_POP, "assign and pop", 0, {    assign_lvalue(Pike_sp-3, Pike_sp-1);    pop_n_elems(3);   });      OPCODE1(F_ASSIGN_LOCAL_AND_POP, "assign local and pop", 0, {    free_svalue(Pike_fp->locals + arg1);    Pike_fp->locals[arg1] = Pike_sp[-1]; -  +  dmalloc_touch_svalue(Pike_sp-1);    Pike_sp--;   });      OPCODE1(F_ASSIGN_GLOBAL, "assign global", 0, {    object_low_set_index(Pike_fp->current_object,    arg1 + Pike_fp->context.identifier_level,    Pike_sp-1);   });      OPCODE1(F_ASSIGN_GLOBAL_AND_POP, "assign global and pop", 0, {
pike.git/src/interpret_functions.h:1418:   });      OPCODE0(F_ADD_INTS, "int+int", 0, {    if(Pike_sp[-1].type == T_INT && Pike_sp[-2].type == T_INT    DO_IF_BIGNUM(    && (!INT_TYPE_ADD_OVERFLOW(Pike_sp[-1].u.integer, Pike_sp[-2].u.integer))    )    )    {    Pike_sp[-2].u.integer+=Pike_sp[-1].u.integer; +  dmalloc_touch_svalue(Pike_sp-1);    Pike_sp--;    }else{    f_add(2);    }   });      OPCODE0(F_ADD_FLOATS, "float+float", 0, {    if(Pike_sp[-1].type == T_FLOAT && Pike_sp[-2].type == T_FLOAT)    {    Pike_sp[-2].u.float_number+=Pike_sp[-1].u.float_number; -  +  dmalloc_touch_svalue(Pike_sp-1);    Pike_sp--;    }else{    f_add(2);    }   });      OPCODE0_ALIAS(F_SUBTRACT, "-", 0, o_subtract);   OPCODE0_ALIAS(F_AND, "&", 0, o_and);   OPCODE0_ALIAS(F_OR, "|", 0, o_or);   OPCODE0_ALIAS(F_XOR, "^", 0, o_xor);
pike.git/src/interpret_functions.h:1486:    case PIKE_T_OBJECT:    if(!Pike_sp[-1].u.object->prog ||    FIND_LFUN(Pike_sp[-1].u.object->prog,LFUN__VALUES) == -1)    PIKE_ERROR("@", "Bad argument.\n", Pike_sp, 1);       apply_lfun(Pike_sp[-1].u.object, LFUN__VALUES, 0);    if(Pike_sp[-1].type != PIKE_T_ARRAY)    Pike_error("Bad return type from o->_values() in @\n");    free_svalue(Pike_sp-2);    Pike_sp[-2]=Pike_sp[-1]; +  dmalloc_touch_svalue(Pike_sp-1);    Pike_sp--;    break;       case PIKE_T_ARRAY: break;    } -  +  dmalloc_touch_svalue(Pike_sp-1);    Pike_sp--;    push_array_items(Pike_sp->u.array);   });      OPCODE2(F_LOCAL_LOCAL_INDEX, "local[local]", 0, {    struct svalue *s=Pike_fp->locals+arg1;    if(s->type == PIKE_T_STRING) s->subtype=0;    Pike_sp++->type=PIKE_T_INT;    index_no_free(Pike_sp-1,Pike_fp->locals+arg2,s);   });
pike.git/src/interpret_functions.h:2045:    \    DO_IF_SECURITY(CHECK_DATA_SECURITY_OR_ERROR(Pike_fp->current_object, \    SECURITY_BIT_CALL, \    ("Function call permission denied.\n"))); \    \    fast_check_threads_etc(6); \    check_stack(256); \    \    new_frame=alloc_pike_frame(); \    \ -  new_frame->refs=1; \ +  new_frame->refs=1; /* FIXME: Is this needed? */ \    new_frame->next=Pike_fp; \    \    Pike_fp->pc = (PIKE_OPCODE_T *)(((INT32 *)PROG_COUNTER) + 1); \    addr = PROG_COUNTER+GET_JUMP(); \    \    new_frame->num_locals = READ_INCR_BYTE(addr); \    args = READ_INCR_BYTE(addr); \    addr += ENTRY_PROLOGUE_SIZE; \    \    new_frame->num_args = new_frame->args = args; \