pike.git / src / interpret.c

version» Context lines:

pike.git/src/interpret.c:2009:   static int num_pike_frame_chunks;   static int num_pike_frames;      PMOD_EXPORT void really_free_pike_frame( struct pike_frame *X )   {    do_free_object(X->current_object);    if(X->current_program)    free_program(X->current_program);    if(X->scope)    free_pike_scope(X->scope); +  if (X->flags & PIKE_FRAME_MALLOCED_LOCALS) { +  free_array(X->locals[-1].u.array); +  X->flags &= ~PIKE_FRAME_MALLOCED_LOCALS; +  }    DO_IF_DEBUG(    if(X->flags & PIKE_FRAME_MALLOCED_LOCALS)    Pike_fatal("Pike frame is not supposed to have malloced locals here!\n"));    if (X->flags & PIKE_FRAME_SAVE_LOCALS) {    free(X->save_locals_bitmask);    X->flags &= ~PIKE_FRAME_SAVE_LOCALS;    }    DO_IF_DMALLOC(    X->current_program=0;    X->context=0;
pike.git/src/interpret.c:2732: Inside #if defined(PIKE_DEBUG)
   /* FIXME: Wouldn't a simple return be ok? */    if(rec->frame_pointer == current->next)    Pike_fatal("You can't touch this!\n");    }    }   #endif    /* Save various fields from the previous frame.    */    frame_set_save_sp(current, frame_get_save_sp(prev));    current->save_mark_sp=prev->save_mark_sp; -  current->flags = prev->flags & PIKE_FRAME_RETURN_MASK; +  current->flags = (current->flags & ~PIKE_FRAME_RETURN_MASK) | +  (prev->flags & PIKE_FRAME_RETURN_MASK);       /* Unlink the top frame temporarily. */    Pike_interpreter.frame_pointer=prev;      #ifdef PROFILING    {    /* We must update the profiling info of the previous frame    * to account for that the current frame has gone away.    */    cpu_time_t total_time =