diff options
Diffstat (limited to 'main/hashtab.c')
-rw-r--r-- | main/hashtab.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/main/hashtab.c b/main/hashtab.c index a6fac4e53..d60a78a0e 100644 --- a/main/hashtab.c +++ b/main/hashtab.c @@ -209,22 +209,40 @@ unsigned int ast_hashtab_hash_short(const short x) return x; } -struct ast_hashtab *ast_hashtab_create(int initial_buckets, +struct ast_hashtab * +#if (defined(MALLOC_DEBUG) && !defined(STANDALONE)) +_ast_hashtab_create +#else +ast_hashtab_create +#endif +(int initial_buckets, int (*compare)(const void *a, const void *b), int (*resize)(struct ast_hashtab *), int (*newsize)(struct ast_hashtab *tab), unsigned int (*hash)(const void *obj), - int do_locking) + int do_locking +#if (defined(MALLOC_DEBUG) && !defined(STANDALONE)) + , const char *file, int lineno, const char *function +#endif +) { struct ast_hashtab *ht; - + +#if (defined(MALLOC_DEBUG) && !defined(STANDALONE)) + if (!(ht = __ast_calloc(1, sizeof(*ht), file, lineno, function))) +#else if (!(ht = ast_calloc(1, sizeof(*ht)))) +#endif return NULL; while (!ast_is_prime(initial_buckets)) /* make sure this is prime */ initial_buckets++; +#if (defined(MALLOC_DEBUG) && !defined(STANDALONE)) + if (!(ht->array = __ast_calloc(initial_buckets, sizeof(*(ht->array)), file, lineno, function))) { +#else if (!(ht->array = ast_calloc(initial_buckets, sizeof(*(ht->array))))) { +#endif free(ht); return NULL; } |