pike.git / src / interpret.c

version» Context lines:

pike.git/src/interpret.c:3502:    if (PIKE_NEEDS_TRACE())    callsite_trace_call_svalue(c, s);   }      static void pike_pop_locals(struct svalue *save_sp, ptrdiff_t n) {    struct svalue *sp = Pike_sp;    ptrdiff_t pop = sp - save_sp - n;       if (!pop) return;    + #ifdef PIKE_DEBUG +  if (pop < 0) { +  Pike_fatal("Trying to pop negative number of locals: %ld.\n", pop); +  } + #endif +     free_svalues(save_sp, pop, T_MIXED);    Pike_sp -= pop;       if (n) memmove(save_sp, save_sp+pop, n*sizeof(struct svalue));       {    extern struct object *objects_to_destruct;    if (UNLIKELY(objects_to_destruct))    low_destruct_objects_to_destruct();    }