pike.git / src / interpret.h

version» Context lines:

pike.git/src/interpret.h: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.h,v 1.118 2002/11/23 17:42:16 mast Exp $ + || $Id: interpret.h,v 1.119 2002/11/23 20:25:49 mast Exp $   */      #ifndef INTERPRET_H   #define INTERPRET_H      #include "global.h"   #include "program.h"   #include "pike_error.h"   #include "bignum.h"   
pike.git/src/interpret.h:175:    DO_NOT_WARN((int)(Pike_sp - save_stack_level)), \    (depth)); \    } \    } while(0)   #else /* !PIKE_DEBUG */   #define STACK_LEVEL_START(depth) do {   #define STACK_LEVEL_DONE(depth) } while(0)   #define STACK_LEVEL_CHECK(depth)   #endif /* PIKE_DEBUG */    - #define pop_stack() do{ free_svalue(--Pike_sp); debug_check_stack(); PIKE_MEM_WO(*Pike_sp); }while(0) + #define pop_stack() do{ free_svalue(--Pike_sp); debug_check_stack(); }while(0)   #define pop_2_elems() do { pop_stack(); pop_stack(); }while(0)      #ifdef __ECL   #define MAYBE_CAST_TO_LONG(X) (X)   #else /* !__ECL */   #define MAYBE_CAST_TO_LONG(X) ((long)(X))   #endif /* __ECL */      PMOD_EXPORT extern const char msg_pop_neg[];   #define pop_n_elems(X) \    do { ptrdiff_t x_=(X); if(x_) { \    check__positive(x_, (msg_pop_neg, x_)); \    Pike_sp -= x_; debug_check_stack(); \    free_mixed_svalues(Pike_sp, x_); \ -  PIKE_MEM_WO_RANGE(Pike_sp, x_*sizeof(*Pike_sp)); \ +     } } while (0)      #define stack_pop_n_elems_keep_top(X) \    do { struct svalue s=Pike_sp[-1]; Pike_sp[-1]=Pike_sp[-1-(X)]; Pike_sp[-1-(X)]=s; \    pop_n_elems(X); } while (0)      #define push_program(P) do{ struct program *_=(P); debug_malloc_touch(_); Pike_sp->u.program=_; Pike_sp++->type=PIKE_T_PROGRAM; }while(0)   #define push_int(I) do{ INT_TYPE _=(I); Pike_sp->u.integer=_;Pike_sp->type=PIKE_T_INT;Pike_sp++->subtype=NUMBER_NUMBER; }while(0)   #define push_undefined() do{ Pike_sp->u.integer=0; Pike_sp->type=PIKE_T_INT; Pike_sp++->subtype=NUMBER_UNDEFINED; }while(0)   #define push_mapping(M) do{ struct mapping *_=(M); debug_malloc_touch(_); Pike_sp->u.mapping=_; Pike_sp++->type=PIKE_T_MAPPING; }while(0)
pike.git/src/interpret.h:247:    ptrdiff_t num_= (N); \    for(;num_-- > 0;s_++) \    { \    s_->type=PIKE_T_INT; \    s_->subtype=NUMBER_UNDEFINED; \    s_->u.integer=0; \    } \    Pike_sp=s_; \   }while(0)    - #define stack_pop_to_no_free(X) do { *(X)=*--Pike_sp; PIKE_MEM_WO(*Pike_sp); } while(0) + #define stack_pop_to_no_free(X) do { \ +  *(X)=*--Pike_sp; \ +  DO_IF_DMALLOC(Pike_sp->type=PIKE_T_UNKNOWN; Pike_sp->u.refs=(void *)-1); \ +  PIKE_MEM_WO(*Pike_sp); \ +  } while(0)   #define stack_pop_to(X) do { struct svalue *_=(X); free_svalue(_); stack_pop_to_no_free(_); }while(0)      /* This pops a number of arguments from the stack but keeps the top    * element on top. Used for popping the arguments while keeping the    * return value.    */   #define stack_unlink(X) do { if(X) { free_svalue(Pike_sp-(X)-1); Pike_sp[-(X)-1]=Pike_sp[-1]; Pike_sp--; pop_n_elems(X-1); } }while(0)      #define free_pike_frame(F) do{ struct pike_frame *f_=(F); debug_malloc_touch(f_); if(!--f_->refs) really_free_pike_frame(f_); }while(0)