FS-12058: [sofia-sip] Fix scan-build issues in su_alloc.c

This commit is contained in:
Andrey Volk 2019-09-20 21:41:46 +04:00
parent e2c1e3a7d3
commit 5addd7144c
2 changed files with 20 additions and 17 deletions

View File

@ -1 +1 @@
Mon Sep 09 11:45:57 CDT 2019
Fri Sep 20 12:16:57 CDT 2019

View File

@ -210,8 +210,11 @@ su_inline void safefree(void *b) { b ? free(b) : (void)0; }
#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);
@ -271,9 +274,9 @@ struct su_block_s {
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);
@ -529,7 +532,7 @@ void *sub_alloc(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;
@ -923,7 +926,7 @@ void su_free(su_home_t *home, void *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;
@ -1425,8 +1428,8 @@ void *su_realloc(su_home_t *home, void *data, isize_t size)
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
@ -1453,8 +1456,8 @@ void *su_realloc(su_home_t *home, void *data, isize_t size)
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;
@ -1470,8 +1473,8 @@ void *su_realloc(su_home_t *home, void *data, isize_t size)
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));
@ -1488,7 +1491,7 @@ void *su_realloc(su_home_t *home, void *data, isize_t size)
/* 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,
@ -1500,7 +1503,7 @@ void *su_realloc(su_home_t *home, void *data, isize_t size)
#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--;
@ -1837,7 +1840,7 @@ void su_home_get_stats(su_home_t *home, int include_clones,
}
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;
@ -1866,7 +1869,7 @@ void su_home_stats_alloc(su_block_t *sub, void *p, void *preload,
}
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;