pike.git / src / interpret.c

version» Context lines:

pike.git/src/interpret.c:2337:    frame->flags |= PIKE_FRAME_MALLOCED_LOCALS;    } else {    frame->locals = NULL;    }       frame->flags &= ~PIKE_FRAME_SAVE_LOCALS;       free(frame->save_locals_bitmask);       frame->num_locals = num_new_locals; -  } else { +  } else if (!(frame->flags & PIKE_FRAME_MALLOCED_LOCALS)) {    frame->locals = NULL; -  +  frame->num_locals = 0;    }       frame->next=0;   }      void count_memory_in_pike_frames(size_t *num, size_t *size )   {    *num = num_pike_frames;    *size = num_pike_frame_chunks * (FRAME_CHUNK_SIZE*8);   }
pike.git/src/interpret.c:2378:      void really_free_pike_scope(struct pike_frame *scope)   {    if(scope->flags & PIKE_FRAME_MALLOCED_LOCALS)    {    struct array *a = scope->locals[-1].u.array;       free_array(a);    scope->locals = NULL;    - #ifdef PIKE_DEBUG -  scope->flags&=~PIKE_FRAME_MALLOCED_LOCALS; - #endif +  scope->flags &= ~PIKE_FRAME_MALLOCED_LOCALS;    }    really_free_pike_frame(scope);   }      void *lower_mega_apply( INT32 args, struct object *o, ptrdiff_t fun )   {    struct program *p;    check_stack(256);    check_mark_stack(256);