]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/lib/mem_pool.h
Cleanup attribute catalog insert errors + cancel SD only once
[bacula/bacula] / bacula / src / lib / mem_pool.h
index cd8dcad6d0dcca8a92ff722ddab8f9f60e681d27..8926b2f2d3cd8a97da48eedb6320b99ea332db45 100644 (file)
@@ -1,7 +1,7 @@
 /*
    Bacula® - The Network Backup Solution
 
-   Copyright (C) 2000-2007 Free Software Foundation Europe e.V.
+   Copyright (C) 2000-2008 Free Software Foundation Europe e.V.
 
    The main author of Bacula is Kern Sibbald, with contributions from
    many others, a complete list can be found in the file AUTHORS.
@@ -20,7 +20,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   Bacula® is a registered trademark of John Walker.
+   Bacula® is a registered trademark of Kern Sibbald.
    The licensor of Bacula is the Free Software Foundation Europe
    (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
    Switzerland, email:ftf@fsfeurope.org.
@@ -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,9 @@ extern void   free_pool_memory(POOLMEM *buf);
 
 #endif
 
+/* Macro to simplify free/reset pointers */
+#define free_and_null_pool_memory(a) do{if(a){free_pool_memory(a); (a)=NULL;}} while(0)
+
 extern void garbage_collect_memory_pool();
 extern void  close_memory_pool();
 extern void  print_memory_pool_stats();
@@ -107,10 +109,15 @@ int pm_strcat(POOLMEM **pm, const char *str);
 int pm_strcat(POOLMEM *&pm, const char *str);
 int pm_strcat(POOL_MEM &pm, const char *str);
 int pm_strcat(POOLMEM *&pm, POOL_MEM &str);
+
 int pm_strcpy(POOLMEM **pm, const char *str);
 int pm_strcpy(POOLMEM *&pm, const char *str);
 int pm_strcpy(POOL_MEM &pm, const char *str);
 int pm_strcpy(POOLMEM *&pm, POOL_MEM &str);
 
+int pm_memcpy(POOLMEM **pm, const char *data, int32_t n);
+int pm_memcpy(POOLMEM *&pm, const char *data, int32_t n);
+int pm_memcpy(POOL_MEM &pm, const char *data, int32_t n);
+int pm_memcpy(POOLMEM *&pm, POOL_MEM &data, int32_t n);
 
 #endif