#endif
static inline su_block_t* MEMLOCK(const su_home_t *h) {
- if (h && h->suh_lock) _su_home_locker(h->suh_lock);
- return h->suh_blocks;
+ if (h) {
+ if (h->suh_lock) _su_home_locker(h->suh_lock);
+ return h->suh_blocks;
+ }
+ return NULL;
}
static inline void* UNLOCK(const su_home_t *h) {
if (h && h->suh_lock) _su_home_unlocker(h->suh_lock);
static void su_home_check_blocks(su_block_t const *b);
-static void su_home_stats_alloc(su_block_t *, void *p, void *preload,
+static void su_home_stats_alloc(su_block_t *, void *preload,
size_t size, int zero);
-static void su_home_stats_free(su_block_t *sub, void *p, void *preload,
+static void su_home_stats_free(su_block_t *sub, void *preload,
unsigned size);
static void _su_home_deinit(su_home_t *home);
sua->sua_home = zero > 1;
if (sub->sub_stats)
- su_home_stats_alloc(sub, data, preload, size, zero);
+ su_home_stats_alloc(sub, preload, size, zero);
}
return data;
preloaded = data;
if (sub->sub_stats)
- su_home_stats_free(sub, data, preloaded, allocation->sua_size);
+ su_home_stats_free(sub, preloaded, allocation->sua_size);
if (allocation->sua_home) {
su_home_t *subhome = data;
ndata = realloc(data, size + MEMCHECK_EXTRA);
if (ndata) {
if (sub->sub_stats) {
- su_home_stats_free(sub, data, 0, sua->sua_size);
- su_home_stats_alloc(sub, data, 0, size, 1);
+ su_home_stats_free(sub, 0, sua->sua_size);
+ su_home_stats_alloc(sub, 0, size, 1);
}
#if MEMCHECK_EXTRA
if (p2 <= sub->sub_prsize) {
/* Extend/reduce existing preload */
if (sub->sub_stats) {
- su_home_stats_free(sub, data, data, sua->sua_size);
- su_home_stats_alloc(sub, data, data, size, 0);
+ su_home_stats_free(sub, data, sua->sua_size);
+ su_home_stats_alloc(sub, data, size, 0);
}
sub->sub_prused = (unsigned)p2;
else if (size < (size_t)sua->sua_size) {
/* Reduce existing preload */
if (sub->sub_stats) {
- su_home_stats_free(sub, data, data, sua->sua_size);
- su_home_stats_alloc(sub, data, data, size, 0);
+ su_home_stats_free(sub, data, sua->sua_size);
+ su_home_stats_alloc(sub, data, size, 0);
}
#if MEMCHECK_EXTRA
memcpy((char *)data + size, &term, sizeof (term));
/* Free preload */
sub->sub_prused = (char *)data - home->suh_blocks->sub_preload;
if (sub->sub_stats)
- su_home_stats_free(sub, data, data, sua->sua_size);
+ su_home_stats_free(sub, data, sua->sua_size);
}
memcpy(ndata, data,
#endif
if (sub->sub_stats)
- su_home_stats_alloc(sub, data, 0, size, 1);
+ su_home_stats_alloc(sub, 0, size, 1);
memset(sua, 0, sizeof *sua); sub->sub_used--;
}
static
-void su_home_stats_alloc(su_block_t *sub, void *p, void *preload,
+void su_home_stats_alloc(su_block_t *sub, void *preload,
size_t size, int zero)
{
su_home_stat_t *hs = sub->sub_stats;
}
static
-void su_home_stats_free(su_block_t *sub, void *p, void *preload,
+void su_home_stats_free(su_block_t *sub, void *preload,
unsigned size)
{
su_home_stat_t *hs = sub->sub_stats;