Added facility for open character sets, eg [a-].
[idzebra-moved-to-github.git] / dfa / imalloc.c
index 64df1fe..43a6657 100644 (file)
@@ -1,10 +1,25 @@
 /*
- * Copyright (C) 1994, Index Data I/S 
+ * Copyright (C) 1994-1996, Index Data I/S 
  * All rights reserved.
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: imalloc.c,v $
- * Revision 1.1  1994-09-26 10:16:54  adam
+ * Revision 1.6  1996-10-29 13:57:25  adam
+ * Include of zebrautl.h instead of alexutil.h.
+ *
+ * Revision 1.5  1996/05/14 11:33:41  adam
+ * MEMDEBUG turned off by default.
+ *
+ * Revision 1.4  1995/09/04  12:33:26  adam
+ * Various cleanup. YAZ util used instead.
+ *
+ * Revision 1.3  1994/09/27  16:31:19  adam
+ * First version of grepper: grep with error correction.
+ *
+ * Revision 1.2  1994/09/26  16:30:56  adam
+ * Minor changes. imalloc uses xmalloc now.
+ *
+ * Revision 1.1  1994/09/26  10:16:54  adam
  * First version of dfa module in alex. This version uses yacc to parse
  * regular expressions. This should be hand-made instead.
  *
 #include <assert.h>
 #include <stdlib.h>
 
-#include <util.h>
+#include <zebrautl.h>
 #include "imalloc.h"
 
-#ifdef MEMDEBUG
+#if MEMDEBUG
 #define MAG1 0x8fe1
 #define MAG2 0x91
 #define MAG3 0xee
@@ -29,11 +44,11 @@ int  free_calls  = 0;
 
 void *imalloc (size_t size)
 {
-#ifdef MEMDEBUG
+#if MEMDEBUG
     size_t words = (4*sizeof(unsigned) -1 + size)/sizeof(unsigned);
-    char *p = (char *)malloc( words*sizeof(unsigned) );
+    char *p = (char *)xmalloc( words*sizeof(unsigned) );
     if( !p )
-        log (LOG_FATAL, "No memory: imalloc(%u); c/f %d/%d; %ld/%ld",
+        logf (LOG_FATAL, "No memory: imalloc(%u); c/f %d/%d; %ld/%ld",
            size, alloc_calls, free_calls, alloc, max_alloc );
     *((unsigned *)p) = size;
     ((unsigned *)p)[1] = MAG1;
@@ -45,20 +60,20 @@ void *imalloc (size_t size)
     ++alloc_calls;
     return (void *) p;
 #else
-    void *p = (void *)malloc( size );
+    void *p = (void *)xmalloc( size );
     if( !p )
-        log (LOG_FATAL, "Out of memory (imalloc)" );
+        logf (LOG_FATAL, "Out of memory (imalloc)" );
     return p;
 #endif
 }
 
 void *icalloc (size_t size)
 {
-#ifdef MEMDEBUG
+#if MEMDEBUG
     unsigned words = (4*sizeof(unsigned) -1 + size)/sizeof(unsigned);
-    char *p = (char *) calloc( words*sizeof(unsigned), 1 );
+    char *p = (char *) xcalloc( words*sizeof(unsigned), 1 );
     if( !p )
-        log (LOG_FATAL, "No memory: icalloc(%u); c/f %d/%d; %ld/%ld",
+        logf (LOG_FATAL, "No memory: icalloc(%u); c/f %d/%d; %ld/%ld",
            size, alloc_calls, free_calls, alloc, max_alloc );
     ((unsigned *)p)[0] = size;
     ((unsigned *)p)[1] = MAG1;
@@ -70,14 +85,14 @@ void *icalloc (size_t size)
     ++alloc_calls;
     return (void *)p;
 #else
-    void p = (void) calloc( size, 1 );
+    void *p = (void *) xcalloc( size, 1 );
     if( !p )
-        log (LOG_FATAL, "Out of memory (icalloc)" );
+        logf (LOG_FATAL, "Out of memory (icalloc)" );
     return p;
 #endif
 }
 
-#ifdef MEMDEBUG
+#if MEMDEBUG
 void i_free (void *p)
 {
     size_t size;
@@ -86,27 +101,19 @@ void i_free (void *p)
     ++free_calls;
     size = (-2)[(unsigned *) p];
     if( (-1)[(unsigned *) p] != MAG1 )
-        log (LOG_FATAL,"Internal: ifree(%u) magic 1 corrupted", size );
+        logf (LOG_FATAL,"Internal: ifree(%u) magic 1 corrupted", size );
     if( size[(unsigned char *) p] != MAG2 )
-        log (LOG_FATAL,"Internal: ifree(%u) magic 2 corrupted", size );
+        logf (LOG_FATAL,"Internal: ifree(%u) magic 2 corrupted", size );
     if( (size+1)[(unsigned char *) p] != MAG3 )
-        log (LOG_FATAL,"Internal: ifree(%u) magic 3 corrupted", size );
+        logf (LOG_FATAL,"Internal: ifree(%u) magic 3 corrupted", size );
     alloc -= size;
     if( alloc < 0L )
-        log (LOG_FATAL,"Internal: ifree(%u) negative alloc.", size );
-    free( (unsigned *) p-2 );
+        logf (LOG_FATAL,"Internal: ifree(%u) negative alloc.", size );
+    xfree( (unsigned *) p-2 );
 }
-#else
-#ifndef ANSI
-void i_free (void *p)
-{
-    if (p)
-        free( p );
-}
-#endif
 #endif
 
-#ifdef MEMDEBUG
+#if MEMDEBUG
 void imemstat (void)
 {
     fprintf( stdout, "imalloc: calls malloc/free %d/%d, ",