Improved memory debugging for xmalloc/nmem.c. References to NMEM
[yaz-moved-to-github.git] / util / xmalloc.c
index 8b372e8..8fd0132 100644 (file)
@@ -4,7 +4,18 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: xmalloc.c,v $
- * Revision 1.2  1995-12-05 11:08:37  adam
+ * Revision 1.5  1997-10-31 12:20:09  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.
+ *
+ * Revision 1.4  1996/07/03 13:21:36  adam
+ * Function xfree_f checks for NULL pointer.
+ *
+ * Revision 1.3  1995/12/05  15:08:44  adam
+ * Fixed verbose of xrealloc.
+ *
+ * Revision 1.2  1995/12/05  11:08:37  adam
  * More verbose malloc routines.
  *
  * Revision 1.1  1995/11/01  11:56:53  quinn
 
 void *xrealloc_f (void *o, size_t size, char *file, int line)
 {
-    void *p;
+    void *p = realloc (o, size);
 
-#ifdef TRACE_XMALLOC
-    fprintf(stderr, "%s:%d: xrealloc(s=%d) %p", file, line, size, p);
+#if TRACE_XMALLOC
+    logf (LOG_DEBUG,
+            "%s:%d: xrealloc(s=%d) %p -> %p", file, line, size, o, p);
 #endif
-    p = realloc (o, size);
     if (!p)
     {
        logf (LOG_FATAL|LOG_ERRNO, "Out of memory, realloc (%d bytes)", size);
        exit(1);
     }
-#ifdef TRACE_XMALLOC
-    fprintf(stderr, " -> %p\n", p);
-#endif
     return p;
 }
 
@@ -61,8 +69,8 @@ void *xmalloc_f (size_t size, char *file, int line)
 {
     void *p = malloc (size);
 
-#ifdef TRACE_XMALLOC
-    fprintf(stderr, "%s:%d: xmalloc(s=%d) %p\n", file, line, size, p);
+#if TRACE_XMALLOC
+    logf (LOG_DEBUG, "%s:%d: xmalloc(s=%d) %p", file, line, size, p);
 #endif
     if (!p)
     {
@@ -75,8 +83,8 @@ void *xmalloc_f (size_t size, char *file, int line)
 void *xcalloc_f (size_t nmemb, size_t size, char *file, int line)
 {
     void *p = calloc (nmemb, size);
-#ifdef TRACE_XMALLOC
-    fprintf(stderr, "%s:%d: xcalloc(s=%d) %p\n", file, line, size, p);
+#if TRACE_XMALLOC
+    logf (LOG_DEBUG, "%s:%d: xcalloc(s=%d) %p", file, line, size, p);
 #endif
     if (!p)
     {
@@ -89,8 +97,8 @@ void *xcalloc_f (size_t nmemb, size_t size, char *file, int line)
 char *xstrdup_f (const char *s, char *file, int line)
 {
     char *p = xmalloc (strlen(s)+1);
-#ifdef TRACE_XMALLOC
-    fprintf(stderr, "%s:%d: xstrdup(s=%d) %p\n", file, line, strlen(s)+1, p);
+#if TRACE_XMALLOC
+    logf (LOG_DEBUG, "%s:%d: xstrdup(s=%d) %p", file, line, strlen(s)+1, p);
 #endif
     strcpy (p, s);
     return p;
@@ -99,9 +107,11 @@ char *xstrdup_f (const char *s, char *file, int line)
 
 void xfree_f(void *p, char *file, int line)
 {
-#ifdef TRACE_XMALLOC
+    if (!p)
+        return ;
+#if TRACE_XMALLOC
     if (p)
-        fprintf(stderr, "%s:%d: xfree %p\n", file, line, p);
+        logf (LOG_DEBUG, "%s:%d: xfree %p", file, line, p);
 #endif
     free(p);
 }