pike.git / src / interpret_functions.h

version» Context lines:

pike.git/src/interpret_functions.h:1:   /* -  * $Id: interpret_functions.h,v 1.103 2002/05/11 21:07:59 mast Exp $ +  * $Id: interpret_functions.h,v 1.104 2002/05/15 09:11:21 grubba Exp $    *    * Opcode definitions for the interpreter.    */      #include "global.h"      #undef CJUMP   #undef AUTO_BIGNUM_LOOP_TEST   #undef LOOP   #undef COMPARISON
pike.git/src/interpret_functions.h:277:    add_ref(Pike_fp->current_object);    Pike_sp->subtype=arg1+Pike_fp->context.identifier_level;    Pike_sp->type=PIKE_T_FUNCTION;    Pike_sp++;    print_return_value();   });      OPCODE2(F_TRAMPOLINE, "trampoline", 0, {    struct object *o=low_clone(pike_trampoline_program);    struct pike_frame *f=Pike_fp; -  while(arg2--) f=f->scope; +  DO_IF_DEBUG(INT32 arg2_ = arg2); +  +  while(arg2--) { +  DO_IF_DEBUG({ +  if (!f->scope) { +  fatal("F_TRAMPOLINE %d, %d: Missing %d levels of scope!\n", +  arg1, arg2_, arg2+1); +  } +  }); +  f=f->scope; +  }    add_ref( ((struct pike_trampoline *)(o->storage))->frame=f );    ((struct pike_trampoline *)(o->storage))->func=arg1+Pike_fp->context.identifier_level;    push_object(o);    /* Make it look like a function. */    Pike_sp[-1].subtype = pike_trampoline_program->lfuns[LFUN_CALL];    Pike_sp[-1].type = T_FUNCTION;    print_return_value();   });      /* The not so basic 'push value' instructions */