Branch: Tag:

2017-11-21

2017-11-21 22:04:06 by Arne Goedeke <el@laramies.com>

Interpreter: cleanup low_return

2360:   void low_return(void)   {    struct svalue *save_sp = frame_get_save_sp(Pike_fp); -  struct object *o = Pike_fp->current_object; -  int fun = Pike_fp->fun; -  int pop = Pike_fp->flags & PIKE_FRAME_RETURN_POP; +  struct pike_frame *frame = Pike_fp; +  struct object *o = frame->current_object; +  int fun = frame->fun; +  int pop = frame->flags & PIKE_FRAME_RETURN_POP;       if (PIKE_FN_DONE_ENABLED()) {    /* DTrace leave probe
2388:   #endif      #ifdef PIKE_DEBUG -  if(Pike_mark_sp < Pike_fp->save_mark_sp) +  if(Pike_mark_sp < frame->save_mark_sp)    Pike_fatal("Popped below save_mark_sp!\n");    if(Pike_sp<Pike_interpreter.evaluator_stack)    Pike_fatal("Stack error (also simple).\n");   #endif -  Pike_mark_sp=Pike_fp->save_mark_sp; -  POP_PIKE_FRAME(); +  Pike_mark_sp=frame->save_mark_sp; + #ifdef PROFILING +  pike_prof_account(frame); + #endif /* PROFILING */ +  LOW_POP_PIKE_FRAME(frame);       pike_pop_locals(save_sp, !pop);