From 45651441ec01f889f98094d8943e26db20b3fd01 Mon Sep 17 00:00:00 2001 From: Russell Bryant <russell@russellbryant.com> Date: Sun, 19 Mar 2006 01:39:14 +0000 Subject: [PATCH] When astmm is in use, define ast_malloc and friends to malloc, etc., so that it doesn't report that all allocations are coming from utils.h. Also, add some more information to the error message astmm reports when a memory allocation failure occurs. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@13513 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- astmm.c | 4 ++-- include/asterisk/utils.h | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/astmm.c b/astmm.c index 122504a58c..c3b26a3562 100644 --- a/astmm.c +++ b/astmm.c @@ -108,9 +108,9 @@ static inline void *__ast_alloc_region(size_t size, const enum func_type which, } ast_mutex_unlock(®lock); if (!reg) { - fprintf(stderr, "Memory allocation failure\n"); + fprintf(stderr, "Memory Allocation Failure - '%d' bytes in function %s at line %d of %s\n", (int) size, func, lineno, file); if (mmlog) { - fprintf(mmlog, "%ld - Memory allocation failure\n", time(NULL)); + fprintf(stderr, "%ld - Memory Allocation Failure - '%d' bytes in function %s at line %d of %s\n", time(NULL), (int) size, func, lineno, file); fflush(mmlog); } } diff --git a/include/asterisk/utils.h b/include/asterisk/utils.h index 416f362f69..c702fa6fb6 100644 --- a/include/asterisk/utils.h +++ b/include/asterisk/utils.h @@ -246,6 +246,8 @@ int getloadavg(double *list, int nelem); long int ast_random(void); #endif +#ifndef __AST_DEBUG_MALLOC + /*! \brief A wrapper for malloc() @@ -383,6 +385,19 @@ char *_ast_strndup(const char *str, size_t len, const char *file, int lineno, co } ) +#else + +/* If astmm is in use, let it handle these. Otherwise, it will report that + all allocations are coming from this header file */ + +#define ast_malloc(a) malloc(a) +#define ast_calloc(a,b) calloc(a,b) +#define ast_realloc(a,b) realloc(a,b) +#define ast_strdup(a) strdup(a) +#define ast_strndup(a,b) strndup(a,b) + +#endif /* AST_DEBUG_MALLOC */ + #if !defined(ast_strdupa) && defined(__GNUC__) /*! \brief duplicate a string in memory from the stack -- GitLab