pike.git / src / interpret.h

version» Context lines:

pike.git/src/interpret.h:11:   #include "program.h"   #include "pike_error.h"   #include "object.h"   #include "pike_rusage.h"   #include "pikecode.h"      struct catch_context   {    struct catch_context *prev;    JMP_BUF recovery; -  struct svalue *save_expendible; +     PIKE_OPCODE_T *next_addr;    ptrdiff_t continue_reladdr;   #ifdef PIKE_DEBUG    struct pike_frame *frame;   #endif   };      struct Pike_interpreter_struct {    /* Swapped variables */    struct svalue *stack_pointer;
pike.git/src/interpret.h:90:    * (i.e. it will always have enough space to represent all    * locals). */    unsigned INT16 *save_locals_bitmask;       unsigned INT16 flags; /** PIKE_FRAME_* */    /**    * This tells us the current level of svalues on the stack that can    * be discarded once the current function is done with them. It is an offset    * from locals and is always positive.    */ -  INT16 expendible_offset; +     INT16 num_locals; /** Number of local variables. */    INT16 num_args; /** Number of argument variables. */       INT32 args; /** Actual number of arguments passed to the function. */    /**    * This is an offset from locals and denotes the place where the return value    * should go.    *    * It can be -1 if the function to be called is on the stack.    * It can be even more negative in case of recursion when the return value location
pike.git/src/interpret.h:124:      static inline void frame_set_save_sp(struct pike_frame *frame, struct svalue *sv) {    ptrdiff_t n = sv - frame->locals;   #ifdef PIKE_DEBUG    if (n < MIN_INT16 || n > MAX_INT16)    Pike_error("Save SP offset too large.\n");   #endif    frame->save_sp_offset = n;   }    - static inline struct svalue *frame_get_expendible(const struct pike_frame *frame) { -  return frame->locals + frame->expendible_offset; - } -  - static inline void frame_set_expendible(struct pike_frame *frame, struct svalue *sv) { -  ptrdiff_t n = sv - frame->locals; - #ifdef PIKE_DEBUG -  if (n < MIN_INT16 || n > MAX_INT16) -  Pike_error("Expendible offset too large.\n"); - #endif -  frame->expendible_offset = n; - } -  +    #define PIKE_FRAME_RETURN_INTERNAL 1   #define PIKE_FRAME_RETURN_POP 2   #define PIKE_FRAME_SAVE_LOCALS 0x4000 /* save_locals_bitmask is set */   #define PIKE_FRAME_MALLOCED_LOCALS 0x8000      #define PIKE_FRAME_RETURN_MASK (PIKE_FRAME_RETURN_INTERNAL|PIKE_FRAME_RETURN_POP)   #define PIKE_FRAME_LOCALS_MASK (PIKE_FRAME_SAVE_LOCALS|PIKE_FRAME_MALLOCED_LOCALS)      struct external_variable_context   {