Correct some flaws in the memory accounting code for stringfields and ao2 objects
authorKevin P. Fleming <kpfleming@digium.com>
Tue, 5 May 2009 13:18:21 +0000 (13:18 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Tue, 5 May 2009 13:18:21 +0000 (13:18 +0000)
Under some conditions, the memory allocation for stringfields and ao2 objects would not have supplied valid file/function names for MALLOC_DEBUG tracking, so this commit corrects that.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@192357 65c4cc65-6c06-0410-ace0-fbb531ad65f3

include/asterisk/stringfields.h
main/astobj2.c
main/utils.c

index 3d59ea1..ca87b60 100644 (file)
@@ -244,7 +244,7 @@ void __ast_string_field_ptr_build_va(struct ast_string_field_mgr *mgr,
 
 /*! \brief free all memory - to be called before destroying the object */
 #define ast_string_field_free_memory(x)        \
-       __ast_string_field_init(&(x)->__field_mgr, &(x)->__field_mgr_pool, -1, NULL, 0, NULL)
+       __ast_string_field_init(&(x)->__field_mgr, &(x)->__field_mgr_pool, -1, __FILE__, __LINE__, __PRETTY_FUNCTION__)
 
 /*!
  * \internal
index 81a3982..78c4cc0 100644 (file)
@@ -358,7 +358,7 @@ void *__ao2_alloc_debug(size_t data_size, ao2_destructor_fn destructor_fn, char
 
 void *__ao2_alloc(size_t data_size, ao2_destructor_fn destructor_fn)
 {
-       return internal_ao2_alloc(data_size, destructor_fn, NULL, 0, NULL);
+       return internal_ao2_alloc(data_size, destructor_fn, __FILE__, __LINE__, __FUNCTION__);
 }
 
 
index 6709e02..106667c 100644 (file)
@@ -1605,7 +1605,7 @@ ast_string_field __ast_string_field_alloc_space(struct ast_string_field_mgr *mgr
                if (add_string_pool(mgr, pool_head, new_size, mgr->owner_file, mgr->owner_line, mgr->owner_func))
                        return NULL;
 #else
-               if (add_string_pool(mgr, pool_head, new_size, NULL, 0, NULL))
+               if (add_string_pool(mgr, pool_head, new_size, __FILE__, __LINE__, __FUNCTION__))
                        return NULL;
 #endif
        }