/** * Collect empty pool chunks */ void jmem_pools_collect_empty () { jmem_pools_chunk_t *chunk_p = JERRY_CONTEXT (jmem_free_8_byte_chunk_p); JERRY_CONTEXT (jmem_free_8_byte_chunk_p) = NULL; while (chunk_p) { VALGRIND_DEFINED_SPACE (chunk_p, sizeof (jmem_pools_chunk_t)); jmem_pools_chunk_t *const next_p = chunk_p->next_p; VALGRIND_NOACCESS_SPACE (chunk_p, sizeof (jmem_pools_chunk_t)); jmem_heap_free_block (chunk_p, 8); JMEM_POOLS_STAT_DEALLOC (); chunk_p = next_p; } #ifdef JERRY_CPOINTER_32_BIT chunk_p = JERRY_CONTEXT (jmem_free_16_byte_chunk_p); JERRY_CONTEXT (jmem_free_16_byte_chunk_p) = NULL; while (chunk_p) { VALGRIND_DEFINED_SPACE (chunk_p, sizeof (jmem_pools_chunk_t)); jmem_pools_chunk_t *const next_p = chunk_p->next_p; VALGRIND_NOACCESS_SPACE (chunk_p, sizeof (jmem_pools_chunk_t)); jmem_heap_free_block (chunk_p, 16); JMEM_POOLS_STAT_DEALLOC (); chunk_p = next_p; } #endif /* JERRY_CPOINTER_32_BIT */ } /* jmem_pools_collect_empty */
/** * Collect empty pool chunks */ void jmem_pools_collect_empty () { while (JERRY_CONTEXT (jmem_free_chunk_p)) { VALGRIND_DEFINED_SPACE (JERRY_CONTEXT (jmem_free_chunk_p), sizeof (jmem_pools_chunk_t)); jmem_pools_chunk_t *const next_p = JERRY_CONTEXT (jmem_free_chunk_p)->next_p; VALGRIND_NOACCESS_SPACE (JERRY_CONTEXT (jmem_free_chunk_p), sizeof (jmem_pools_chunk_t)); jmem_heap_free_block (JERRY_CONTEXT (jmem_free_chunk_p), JMEM_POOL_CHUNK_SIZE); JMEM_POOLS_STAT_DEALLOC (); JERRY_CONTEXT (jmem_free_chunk_p) = next_p; } } /* jmem_pools_collect_empty */