pike.git / src / interpret.c

version» Context lines:

pike.git/src/interpret.c: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.c,v 1.386 2008/02/27 23:59:12 grubba Exp $ + || $Id: interpret.c,v 1.387 2008/03/09 16:48:55 grubba Exp $   */      #include "global.h"   #include "interpret.h"   #include "object.h"   #include "program.h"   #include "svalue.h"   #include "array.h"   #include "mapping.h"   #include "pike_error.h"
pike.git/src/interpret.c:2326:    struct pike_frame *new_frame=alloc_pike_frame();    int ret;    int use_dummy_reference = !o->prog->num_identifier_references;    int p_flags = o->prog->flags;    LOW_JMP_BUF *saved_jmpbuf;       /* This is needed for opcodes that use INHERIT_FROM_*    * (eg F_EXTERN) to work.    */    if (use_dummy_reference) { +  struct identifier dummy;    struct reference dummy_ref = {    0, 0, ID_HIDDEN,    }; -  /* check_program() doesn't like our identifier... */ -  o->prog->flags |= PROGRAM_AVOID_CHECK; +  copy_shared_string(dummy.name, empty_string); +  copy_pike_type(dummy.type, function_type_string); +  dummy.identifier_flags = IDENTIFIER_PIKE_FUNCTION|IDENTIFIER_HAS_BODY; +  dummy.func.offset = offset; +  dummy.opt_flags = 0; +  dummy_ref.identifier_offset = Pike_compiler->new_program->num_identifiers; +  debug_add_to_identifiers(dummy);    add_to_identifier_references(dummy_ref);    }       /* FIXME: Is this up-to-date with mega_apply? */    new_frame->next = Pike_fp;    add_ref(new_frame->current_object = o);    add_ref(new_frame->current_program = o->prog);    new_frame->context = o->prog->inherits;    new_frame->locals = Pike_sp;    new_frame->expendible=new_frame->locals;
pike.git/src/interpret.c:2382: Inside #if defined(PIKE_DEBUG)
   if(Pike_sp<Pike_interpreter.evaluator_stack)    Pike_fatal("Stack error (simple).\n");   #endif    ret=0;    }    UNSETJMP(tmp);       Pike_interpreter.catching_eval_jmpbuf = saved_jmpbuf;       if (use_dummy_reference) { +  /* Pop the dummy identifier. */    Pike_compiler->new_program->num_identifier_references--; -  o->prog->flags = p_flags; +  Pike_compiler->new_program->num_identifiers--;    }       assert (new_frame == Pike_fp);    LOW_POP_PIKE_FRAME (new_frame);       return ret;   }      PMOD_EXPORT void safe_apply_low2(struct object *o, int fun, int args,    const char *fun_name)