Branch: Tag:

2014-12-04

2014-12-04 19:23:56 by Arne Goedeke <el@laramies.com>

interpreter: use valgrind mempool macros for pike frame allocator

298:    return 0; /* OK. */   }    + static struct pike_frame *free_pike_frame = NULL; +    PMOD_EXPORT void init_interpreter(void)   { -  + #ifdef HAVE_VALGRIND_MACROS +  VALGRIND_CREATE_MEMPOOL(&free_pike_frame, 0, 0); + #endif    if (low_init_interpreter(Pike_interpreter_pointer)) {    Pike_fatal("Out of memory initializing the interpreter stack.\n");    }
1936:    free(s);   }    - static struct pike_frame *free_pike_frame; +    static struct pike_frame_chunk {    struct pike_frame_chunk *next;   } *pike_frame_chunks;
1965:    DO_IF_SECURITY( X->current_creds=0; )    );    X->next = free_pike_frame; -  PIKE_MEM_NA(*X); + #ifdef HAVE_VALGRIND_MACROS +  VALGRIND_MEMPOOL_FREE(&free_pike_frame, X); + #endif    free_pike_frame = X;   }   
1975:    if( free_pike_frame )    {    res = free_pike_frame; -  PIKE_MEM_RW(res->next); + #ifdef HAVE_VALGRIND_MACROS +  VALGRIND_MEMPOOL_ALLOC(&free_pike_frame, res, sizeof(struct pike_frame)); +  VALGRIND_MAKE_MEM_DEFINED(&res->next, sizeof(void*)); + #endif    free_pike_frame = res->next; -  PIKE_MEM_WO(*res); + #ifdef HAVE_VALGRIND_MACROS +  VALGRIND_MAKE_MEM_UNDEFINED(&res->next, sizeof(void*)); + #endif    res->refs=0;    add_ref(res); /* For DMALLOC... */    res->flags=0;