[win32] integrate mainline
[p5sagit/p5-mst-13.2.git] / malloc.c
index 00ca556..6f8f548 100644 (file)
--- a/malloc.c
+++ b/malloc.c
@@ -178,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;
 {
@@ -189,6 +189,7 @@ emergency_sbrk(size)
     }
 
     if (!emergency_buffer) {           
+       dTHR;
        /* First offense, give a possibility to recover by dieing. */
        /* No malloc involved here: */
        GV **gvp = (GV**)hv_fetch(defstash, "^M", 2, 0);
@@ -236,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
 
@@ -264,7 +265,7 @@ static void
 botch(char *s)
 {
        PerlIO_printf(PerlIO_stderr(), "assertion botched: %s\n", s);
-       abort();
+       PerlProc_abort();
 }
 #else
 #define        ASSERT(p)
@@ -507,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)
@@ -776,7 +777,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;
 {