pike.git / src / interpret.h

version» Context lines:

pike.git/src/interpret.h:232:   #endif      #define pop_stack() do{ free_svalue(--Pike_sp); debug_check_stack(); }while(0)   #define pop_2_elems() do { pop_stack(); pop_stack(); }while(0)      PMOD_EXPORT extern const char msg_pop_neg[];   #define pop_n_elems(X) \    do { \    ptrdiff_t x_=(X); \    if(x_) { \ -  struct svalue *_sp_; \ +     check__positive(x_, (msg_pop_neg, x_)); \ -  _sp_ = Pike_sp - x_; \ -  free_mixed_svalues(_sp_, x_); \ -  Pike_sp = _sp_; \ +  if (x_ > 131072) Pike_fatal("Popping too much!\n"); \ +  while (x_--) pop_stack(); \    debug_check_stack(); \    } \    } 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 { \    ptrdiff_t x2_ = (X); \