[PATCH 5.004_65] Config_65-02-03.diff: SunOS and Solaris hints
[p5sagit/p5-mst-13.2.git] / malloc.c
index ae3773a..0e17458 100644 (file)
--- a/malloc.c
+++ b/malloc.c
@@ -2,8 +2,6 @@
  *
  */
 
-#define EMBEDMYMALLOC
-
 #if defined(PERL_CORE) && !defined(DEBUGGING_MSTATS)
 #  define DEBUGGING_MSTATS
 #endif 
@@ -180,7 +178,7 @@ static u_short blk_shift[11 - 3] = {256, 128, 64, 32,
 static char *emergency_buffer;
 static MEM_SIZE emergency_buffer_size;
 
-static char *
+static Malloc_t
 emergency_sbrk(size)
     MEM_SIZE size;
 {
@@ -239,14 +237,14 @@ static    union overhead *nextf[NBUCKETS];
 
 #ifdef USE_PERL_SBRK
 #define sbrk(a) Perl_sbrk(a)
-char *  Perl_sbrk _((int size));
+Malloc_t Perl_sbrk _((int size));
 #else 
 #ifdef DONT_DECLARE_STD
 #ifdef I_UNISTD
 #include <unistd.h>
 #endif
 #else
-extern char *sbrk(int);
+extern Malloc_t sbrk(int);
 #endif
 #endif
 
@@ -267,7 +265,7 @@ static void
 botch(char *s)
 {
        PerlIO_printf(PerlIO_stderr(), "assertion botched: %s\n", s);
-       abort();
+       PerlProc_abort();
 }
 #else
 #define        ASSERT(p)
@@ -510,7 +508,7 @@ free(void *mp)
        if (OV_MAGIC(ovp, bucket) != MAGIC) {
                static int bad_free_warn = -1;
                if (bad_free_warn == -1) {
-                   char *pbf = getenv("PERL_BADFREE");
+                   char *pbf = PerlEnv_getenv("PERL_BADFREE");
                    bad_free_warn = (pbf) ? atoi(pbf) : 1;
                }
                if (!bad_free_warn)
@@ -620,6 +618,9 @@ realloc(void *mp, size_t nbytes)
         *  FIRST_BIG_TWO_POT, but the new one is near the lower end.
         */
        if (was_alloced &&
+#ifdef STRESS_REALLOC
+           0 && /* always do it the hard way */
+#endif
            nbytes <= onb && (nbytes > ( (onb >> 1) - M_OVERHEAD )
 #ifdef TWO_POT_OPTIMIZE
                              || (i == (FIRST_BIG_TWO_POT - 3) 
@@ -779,7 +780,7 @@ static long Perl_sbrk_oldsize;
 #   define PERLSBRK_32_K (1<<15)
 #   define PERLSBRK_64_K (1<<16)
 
-char *
+Malloc_t
 Perl_sbrk(size)
 int size;
 {