pike.git / src / interpret_functions.h

version» Context lines:

pike.git/src/interpret_functions.h:1:   /* -  * $Id: interpret_functions.h,v 1.94 2001/09/28 00:01:44 hubbe Exp $ +  * $Id: interpret_functions.h,v 1.95 2001/09/29 06:19:27 hubbe 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:267:      OPCODE1(F_LFUN, "local function", {    Pike_sp->u.object=Pike_fp->current_object;    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();   });    - OPCODE1(F_TRAMPOLINE, "trampoline", { + OPCODE2(F_TRAMPOLINE, "trampoline", {    struct object *o=low_clone(pike_trampoline_program); -  add_ref( ((struct pike_trampoline *)(o->storage))->frame=Pike_fp ); +  struct pike_frame *f=Pike_fp; +  while(arg2--) 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 */