Added Xmalloc.
authorSebastian Hammer <quinn@indexdata.com>
Wed, 1 Nov 1995 11:56:53 +0000 (11:56 +0000)
committerSebastian Hammer <quinn@indexdata.com>
Wed, 1 Nov 1995 11:56:53 +0000 (11:56 +0000)
util/xmalloc.c [new file with mode: 0644]

diff --git a/util/xmalloc.c b/util/xmalloc.c
new file mode 100644 (file)
index 0000000..fad55d8
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 1994, Index Data I/S 
+ * All rights reserved.
+ * Sebastian Hammer, Adam Dickmeiss
+ *
+ * $Log: xmalloc.c,v $
+ * Revision 1.1  1995-11-01 11:56:53  quinn
+ * Added Xmalloc.
+ *
+ * Revision 1.6  1995/10/16  14:03:11  quinn
+ * Changes to support element set names and espec1
+ *
+ * Revision 1.5  1995/09/04  12:34:06  adam
+ * Various cleanup. YAZ util used instead.
+ *
+ * Revision 1.4  1994/10/05  10:16:16  quinn
+ * Added xrealloc. Fixed bug in log.
+ *
+ * Revision 1.3  1994/09/26  16:31:37  adam
+ * Added xcalloc_f.
+ *
+ * Revision 1.2  1994/08/18  08:23:26  adam
+ * Res.c now use handles. xmalloc defines xstrdup.
+ *
+ * Revision 1.1  1994/08/17  13:37:54  adam
+ * xmalloc.c added to util.
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <log.h>
+#include <xmalloc.h>
+#include <dmalloc.h>
+
+void *xrealloc_f (void *o, size_t size, char *file, int line)
+{
+    void *p;
+
+#ifdef TRACE_XMALLOC
+    fprintf(stderr, "%s:%d: xrealloc(s=%d)\n", file, line, size);
+#endif
+    p = realloc (o, size);
+    if (!p)
+    {
+       logf (LOG_FATAL|LOG_ERRNO, "Out of memory, realloc (%d bytes)", size);
+       exit(1);
+    }
+    return p;
+}
+
+void *xmalloc_f (size_t size, char *file, int line)
+{
+    void *p;
+
+#ifdef TRACE_XMALLOC
+    fprintf(stderr, "%s:%d: xmalloc(s=%d)\n", file, line, size);
+#endif
+    p = malloc (size);
+    if (!p)
+    {
+        logf (LOG_FATAL, "Out of memory - malloc (%d bytes)", size);
+        exit (1);
+    }
+    return p;
+}
+
+void *xcalloc_f (size_t nmemb, size_t size, char *file, int line)
+{
+    void *p;
+#ifdef TRACE_XMALLOC
+    fprintf(stderr, "%s:%d: xcalloc(s=%d)\n", file, line, size);
+#endif
+    p = calloc (nmemb, size);
+    if (!p)
+    {
+        logf (LOG_FATAL, "Out of memory - calloc (%d, %d)", nmemb, size);
+        exit (1);
+    }
+    return p;
+}
+
+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)\n", file, line, strlen(s)+1);
+#endif
+    strcpy (p, s);
+    return p;
+}
+
+
+void xfree_f(void *p, char *file, int line)
+{
+#ifdef TRACE_XMALLOC
+    fprintf(stderr, "%s:%d: xfree\n", file, line);
+#endif
+    free(p);
+}