Index: util.c =================================================================== RCS file: /anoncvs/libsmi/lib/util.c,v retrieving revision 1.25 diff -u -r1.25 util.c --- util.c 2000/11/16 14:58:10 1.25 +++ util.c 2001/07/19 18:56:24 @@ -23,6 +23,59 @@ #include "util.h" +#ifdef HAVE_DMALLOC_H +void *_smiMalloc(char *file, int line, size_t size) +{ + char *m = _calloc_leap(file, line, 1, size); + if (! m) { + smiPrintError(NULL, ERR_OUT_OF_MEMORY); + } + return m; +} + +void *_smiRealloc(char *file, int line, void *ptr, size_t size) +{ + char *m = _realloc_leap(file, line, ptr, size); + if (! m) { + smiPrintError(NULL, ERR_OUT_OF_MEMORY); + } + return m; +} + +char *_smiStrdup(char *file, int line, const char *s1) +{ + if (s1) { + char *m = _strdup_leap(file, line, s1); + if (! m) { + smiPrintError(NULL, ERR_OUT_OF_MEMORY); + } + return m; + } else { + return NULL; + } +} + +char *_smiStrndup(char *file, int line, const char *s1, size_t n) +{ + char *m; + + m = _smiMalloc(file, line, n+1); + if (! m) { + smiPrintError(NULL, ERR_OUT_OF_MEMORY); + } + strncpy(m, s1, n); + m[n] = 0; + return m; +} + +void _smiFree(char *file, int line, void *ptr) +{ + if (ptr) { + _free_leap(file, line, ptr); + } +} + +#else void *smiMalloc(size_t size) { @@ -74,6 +127,7 @@ free(ptr); } } +#endif int smiIsPath(const char *s) { Index: util.h =================================================================== RCS file: /anoncvs/libsmi/lib/util.h,v retrieving revision 1.21 diff -u -r1.21 util.h --- util.h 2000/06/29 11:35:19 1.21 +++ util.h 2001/07/19 18:56:24 @@ -49,6 +49,20 @@ #endif #endif +#ifdef HAVE_DMALLOC_H +extern void *_smiMalloc(char *, int, size_t); +extern void *_smiRealloc(char *, int, void *ptr, size_t size); +extern char *_smiStrdup(char *, int, const char *s1); +extern char *_smiStrndup(char *, int, const char *s1, size_t n); +extern void _smiFree(char *, int, void *ptr); + +#define smiMalloc(s) _smiMalloc(__FILE__, __LINE__, s) +#define smiRealloc(p,s) _smiRealloc(__FILE__, __LINE__, p, s) +#define smiStrdup(s) _smiStrdup(__FILE__, __LINE__, s) +#define smiStrndup(s,n) _smiStrndup(__FILE__, __LINE__, s, n) +#define smiFree(p) _smiFree(__FILE__, __LINE__, p) + +#else extern void *smiMalloc(size_t size); extern void *smiRealloc(void *ptr, size_t size); @@ -58,6 +72,7 @@ extern char *smiStrndup(const char *s1, size_t n); extern void smiFree(void *ptr); +#endif extern int smiIsPath(const char *s);