X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=include%2Fnmem.h;h=bd3581ab73516d02d4e5ab0cfdf5b3a612f69cf8;hp=5d465481b12615f1182296d956e634e13b7870b5;hb=559aecba0e61eca34706023436692ba23faa29a7;hpb=88d26764ac94b4a2872c77e2deed58b15d2f6f02 diff --git a/include/nmem.h b/include/nmem.h index 5d46548..bd3581a 100644 --- a/include/nmem.h +++ b/include/nmem.h @@ -23,11 +23,23 @@ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. * - * $log$ + * $Log: nmem.h,v $ + * Revision 1.7 1997-10-31 12:20:08 adam + * Improved memory debugging for xmalloc/nmem.c. References to NMEM + * instead of ODR in n ESPEC-1 handling in source d1_espec.c. + * Bug fix: missing fclose in data1_read_espec1. + * */ #ifndef NMEM_H #define NMEM_H +#include + +#define NMEM_DEBUG 0 + +#ifndef NMEM_DEBUG +#define NMEM_DEBUG 0 +#endif #ifdef __cplusplus extern "C" { @@ -50,12 +62,27 @@ typedef struct nmem_control typedef struct nmem_control *NMEM; -void nmem_reset(NMEM n); -void *nmem_malloc(NMEM n, int size); -int nmem_total(NMEM n); -NMEM nmem_create(void); -void nmem_destroy(NMEM n); +YAZ_EXPORT void nmem_reset(NMEM n); +YAZ_EXPORT void *nmem_malloc(NMEM n, int size); +YAZ_EXPORT int nmem_total(NMEM n); +YAZ_EXPORT char *nmem_strdup (NMEM mem, const char *src); + +#if NMEM_DEBUG + +YAZ_EXPORT NMEM nmem_create_f(const char *file, int line); +YAZ_EXPORT void nmem_destroy_f(const char *file, int line, NMEM n); +#define nmem_create() nmem_create_f(__FILE__, __LINE__) +#define nmem_destroy(x) nmem_destroy_f(__FILE__, __LINE__, (x)) + +#else + +YAZ_EXPORT NMEM nmem_create(void); +YAZ_EXPORT void nmem_destroy(NMEM n); + +#endif +YAZ_EXPORT void nmem_init (void); +YAZ_EXPORT void nmem_exit (void); #ifdef __cplusplus } #endif