]> git.sur5r.net Git - bacula/bacula/commitdiff
add function to simplify free and null operation on pointers
authorEric Bollengier <eric@eb.homelinux.org>
Thu, 23 Jul 2009 09:00:51 +0000 (09:00 +0000)
committerEric Bollengier <eric@eb.homelinux.org>
Thu, 23 Jul 2009 09:00:51 +0000 (09:00 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@9090 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/baconfig.h
bacula/src/lib/mem_pool.h

index c341826e7c6a3784d2ddeb5761aedc8549767fa5..2d149c02f88bc328eb0ff4e57b51d7cc078732ec 100644 (file)
@@ -612,6 +612,9 @@ int  m_msg(const char *file, int line, POOLMEM *&pool_buf, const char *fmt, ...)
 #define bmalloc(size) b_malloc(__FILE__, __LINE__, (size))
 #endif
 
+/* Function to simplify free/reset pointers */
+inline void bfree_and_null(void *&a) { if (a) { free(a); a = NULL; } }
+
 /*
  * Replace codes needed in both file routines and non-file routines
  * Job replace codes -- in "replace"
index bd39d7500967c2b1e43ebbea914a10486ada2a1a..b4d2512ba3e282f8894b28d4901b33876f099a94 100644 (file)
@@ -58,7 +58,6 @@ extern POOLMEM  *sm_check_pool_memory_size(const char *fname, int line, POOLMEM
 #define free_memory(x) sm_free_pool_memory(__FILE__, __LINE__, x)
 extern void sm_free_pool_memory(const char *fname, int line, POOLMEM *buf);
 
-
 #else
 
 extern POOLMEM *get_pool_memory(int pool);
@@ -71,6 +70,16 @@ extern void   free_pool_memory(POOLMEM *buf);
 
 #endif
 
+/* Function to simplify free/reset pointers */
+inline void bfree_and_null(POOLMEM *&a) {
+   if (a) { 
+      free_pool_memory(a);
+      a = NULL;
+   } 
+}
+
+#define free_and_null_pool_memory(a) bfree_and_null((a))
+
 extern void garbage_collect_memory_pool();
 extern void  close_memory_pool();
 extern void  print_memory_pool_stats();