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.207 2001/06/19 23:59:33 hubbe Exp $"); + RCSID("$Id: interpret.c,v 1.208 2001/06/23 10:33:11 hubbe Exp $");   #include "interpret.h"   #include "object.h"   #include "program.h"   #include "svalue.h"   #include "array.h"   #include "mapping.h"   #include "pike_error.h"   #include "language.h"   #include "stralloc.h"   #include "constants.h"
pike.git/src/interpret.c:1423:    }else{    if(t_flag>1) trace_return_value();    }   }      void unlink_previous_frame(void)   {    struct pike_frame *current, *prev;    struct svalue *target, **smsp;    int freespace; +     current=Pike_interpreter.frame_pointer; -  prev=Pike_interpreter.frame_pointer=current->next; +  prev=current->next; + #ifdef PIKE_DEBUG +  { +  JMP_BUF *rec;    -  +  if((rec=Pike_interpreter.recoveries)) +  { +  while(rec->frame_pointer == current) rec=rec->previous; +  if(rec->frame_pointer == current->next) +  fatal("You can't touch this!\n"); +  } +  } + #endif +  +  Pike_interpreter.frame_pointer=prev; +     target=prev->save_sp;    smsp=prev->save_mark_sp;    current->flags=prev->flags;    POP_PIKE_FRAME();       prev=current->next=Pike_interpreter.frame_pointer;    Pike_interpreter.frame_pointer=current;       current->save_sp=target;    current->save_mark_sp=smsp;    - #if 1 +     /* Move svalues down */    freespace=fp->locals - target;    if(freespace > ((Pike_sp - fp->locals)<<2) + 32)    {    assign_svalues(target,    fp->locals,    Pike_sp - fp->locals,    BIT_MIXED);       fp->locals-=freespace;
pike.git/src/interpret.c:1462: Inside #if 1
   /* Move pointers down */    freespace=fp->mark_sp_base - smsp;    if(freespace > ((Pike_mark_sp - fp->mark_sp_base)<<2)+32)    {    MEMMOVE(smsp,    fp->mark_sp_base,    sizeof(struct svalue **)*(Pike_mark_sp - fp->mark_sp_base));    fp->mark_sp_base-=freespace;    Pike_mark_sp-=freespace;    } - #endif +    }         void mega_apply(enum apply_type type, INT32 args, void *arg1, void *arg2)   {    if(low_mega_apply(type, args, arg1, arg2))    {    eval_instruction(Pike_fp->pc);    low_return();    }