Win32 sitelib intuition from DLL location
[p5sagit/p5-mst-13.2.git] / malloc.c
index 379861e..c84db66 100644 (file)
--- a/malloc.c
+++ b/malloc.c
@@ -2,6 +2,10 @@
  *
  */
 
+#if defined(PERL_CORE) && !defined(DEBUGGING_MSTATS)
+#  define DEBUGGING_MSTATS
+#endif 
+
 #ifndef lint
 #  if defined(DEBUGGING) && !defined(NO_RCHECK)
 #    define RCHECK
@@ -328,8 +332,8 @@ malloc(nbytes)
        }
 
 #ifdef PERL_CORE
-    DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%lx: (%05d) malloc %ld bytes\n",
-       (unsigned long)(p+1),an++,(long)size));
+    DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%lx: (%05lu) malloc %ld bytes\n",
+       (unsigned long)(p+1),(unsigned long)(an++),(long)size));
 #endif /* PERL_CORE */
 
        /* remove from linked list */
@@ -485,7 +489,7 @@ free(mp)
 #endif 
 
 #ifdef PERL_CORE
-    DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%lx: (%05d) free\n",(unsigned long)cp,an++));
+    DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%lx: (%05lu) free\n",(unsigned long)cp,(unsigned long)(an++)));
 #endif /* PERL_CORE */
 
        if (cp == NULL)
@@ -496,7 +500,7 @@ free(mp)
        bucket = OV_INDEX(op);
 #endif 
        if (OV_MAGIC(op, bucket) != MAGIC) {
-               static bad_free_warn = -1;
+               static int bad_free_warn = -1;
                if (bad_free_warn == -1) {
                    char *pbf = getenv("PERL_BADFREE");
                    bad_free_warn = (pbf) ? atoi(pbf) : 1;
@@ -645,9 +649,9 @@ realloc(mp, nbytes)
 #ifdef PERL_CORE
 #ifdef DEBUGGING
     if (debug & 128) {
-       PerlIO_printf(PerlIO_stderr(), "0x%lx: (%05d) rfree\n",(unsigned long)res,an++);
-       PerlIO_printf(PerlIO_stderr(), "0x%lx: (%05d) realloc %ld bytes\n",
-           (unsigned long)res,an++,(long)size);
+       PerlIO_printf(PerlIO_stderr(), "0x%lx: (%05lu) rfree\n",(unsigned long)res,(unsigned long)(an++));
+       PerlIO_printf(PerlIO_stderr(), "0x%lx: (%05lu) realloc %ld bytes\n",
+           (unsigned long)res,(unsigned long)(an++),(long)size);
     }
 #endif
 #endif /* PERL_CORE */
@@ -781,6 +785,9 @@ int size;
 #ifdef PERL_CORE
     reqsize = size; /* just for the DEBUG_m statement */
 #endif
+#ifdef PACK_MALLOC
+    size = (size + 0x7ff) & ~0x7ff;
+#endif
     if (size <= Perl_sbrk_oldsize) {
        got = Perl_sbrk_oldchunk;
        Perl_sbrk_oldchunk += size;
@@ -796,6 +803,9 @@ int size;
        small = 1;
       }
       got = (IV)SYSTEM_ALLOC(size);
+#ifdef PACK_MALLOC
+      got = (got + 0x7ff) & ~0x7ff;
+#endif
       if (small) {
        /* Chunk is small, register the rest for future allocs. */
        Perl_sbrk_oldchunk = got + reqsize;