Add several new record features
[ghc-hetmet.git] / rts / RtsUtils.c
index a2a2919..94c357e 100644 (file)
@@ -136,7 +136,7 @@ static void addAllocation(void *addr, size_t len) {
     }
 }
 
-static void removeAllocation(void *addr) {
+static void removeAllocation(void *addr, int overwrite_with_aa) {
     Allocated *prev, *a;
 
     if (addr == NULL) {
@@ -150,7 +150,9 @@ static void removeAllocation(void *addr) {
         while (a != NULL) {
             if (a->addr == addr) {
                 prev->next = a->next;
-                memset(addr, 0xaa, a->len);
+                if (overwrite_with_aa) {
+                    memset(addr, 0xaa, a->len);
+                }
                 free(a);
                 RELEASE_LOCK(&allocator_mutex);
                 return;
@@ -210,7 +212,7 @@ stgReallocBytes (void *p, int n, char *msg)
       stg_exit(EXIT_INTERNAL_ERROR);
     }
 #if defined(DEBUG)
-    removeAllocation(p);
+    removeAllocation(p, 0);
     addAllocation(space, n2);
 #endif
     return space;
@@ -239,7 +241,7 @@ void
 stgFree(void* p)
 {
 #if defined(DEBUG)
-  removeAllocation(p);
+  removeAllocation(p, 1);
 #endif
   free(p);
 }
@@ -296,14 +298,14 @@ nat stg_strlen(char *s)
    ToDo: put this somewhere sensible.
    -------------------------------------------------------------------------  */
 
-static I_ __GenSymCounter = 0;
+static HsInt __GenSymCounter = 0;
 
-I_
+HsInt
 genSymZh(void)
 {
     return(__GenSymCounter++);
 }
-I_
+HsInt
 resetGenSymZh(void) /* it's your funeral */
 {
     __GenSymCounter=0;
@@ -314,7 +316,6 @@ resetGenSymZh(void) /* it's your funeral */
    Get the current time as a string.  Used in profiling reports.
    -------------------------------------------------------------------------- */
 
-#if defined(PROFILING) || defined(DEBUG) || defined(PAR) || defined(GRAN)
 char *
 time_str(void)
 {
@@ -333,7 +334,6 @@ time_str(void)
     }
     return nowstr;
 }
-#endif
 
 /* -----------------------------------------------------------------------------
  * Reset a file handle to blocking mode.  We do this for the standard