pike.git / src / interpret.c

version» Context lines:

pike.git/src/interpret.c:1:   /*\   ||| This file a part of Pike, and is copyright by Fredrik Hubinette   ||| Pike is distributed as GPL (General Public License)   ||| See the files COPYING and DISCLAIMER for more information.   \*/   #include "global.h" - RCSID("$Id: interpret.c,v 1.92 1998/07/17 19:53:16 hubbe Exp $"); + RCSID("$Id: interpret.c,v 1.93 1998/07/28 23:02:42 hubbe Exp $");   #include "interpret.h"   #include "object.h"   #include "program.h"   #include "svalue.h"   #include "array.h"   #include "mapping.h"   #include "error.h"   #include "language.h"   #include "stralloc.h"   #include "constants.h"
pike.git/src/interpret.c:1366:    sp[-1].u.integer++;    }else{    pc+=sizeof(INT32);    }    break;    }       CASE(F_APPLY_AND_RETURN);    {    INT32 args=sp - *--mark_sp; + /* fprintf(stderr,"%p >= %p\n",fp->expendible,sp-args); */    if(fp->expendible >= sp-args)    { -  + /* fprintf(stderr,"NOT EXPENDIBLE!\n"); */    MEMMOVE(sp-args+1,sp-args,args*sizeof(struct svalue));    sp++;    sp[-args-1].type=T_INT;    }    /* We sabotage the stack here */    assign_svalue(sp-args-1,fp->context.prog->constants+GET_ARG());    return args+1;    }       CASE(F_CALL_LFUN_AND_RETURN);
pike.git/src/interpret.c:2121:    struct svalue *expendible=fp->expendible;    if(SETJMP(tmp))    {    *sp=throw_value;    throw_value.type=T_INT;    sp++;    UNSETJMP(tmp);    fp->expendible=expendible;    return 0;    }else{ -  int x=eval_instruction(pc); +  int x; +  fp->expendible=fp->locals + fp->num_locals; +  x=eval_instruction(pc); +  fp->expendible=expendible;    if(x!=-1) mega_apply(APPLY_STACK, x, 0,0);    UNSETJMP(tmp); -  fp->expendible=expendible; +     return 1;    }   }      void f_call_function(INT32 args)   {    mega_apply(APPLY_STACK,args,0,0);   }      int apply_low_safe_and_stupid(struct object *o, INT32 offset)