free_fn);
ddpa->curpool = NULL;
ddpa->curpool_limit = NULL;
- ddpa->curpool_free = ddpa->curpool_limit + 1;
+ ddpa->curpool_free = NULL;
vg_assert(ddpa->pools);
return ddpa;
}
(long int) ddpa->nr_alloc_calls,
VG_(HT_count_nodes)(ddpa->ht_elements),
VG_(sizeXA)(ddpa->pools),
- (long int) (ddpa->curpool_limit - ddpa->curpool_free + 1));
+ ddpa->curpool ?
+ (long int) (ddpa->curpool_limit - ddpa->curpool_free + 1) : 0);
VG_(HT_print_stats) (ddpa->ht_elements, cmp_pool_elt);
}
and insert it in the hash table of inserted elements. */
// Add a new pool or grow pool if not enough space in the current pool
- if (UNLIKELY(ddpa->curpool_free + eltSzB - 1 > ddpa->curpool_limit)) {
+ if (UNLIKELY(ddpa->curpool_free == NULL
+ || ddpa->curpool_free + eltSzB - 1 > ddpa->curpool_limit)) {
ddpa_add_new_pool_or_grow (ddpa);
}