From: Chip Salzenberg Date: Fri, 21 Feb 1997 14:59:31 +0000 (+1200) Subject: Don't assume that sizeof(int) >= sizeof(void*) X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=c030ccd9d6ca0638398c27d7169051214732a502;p=p5sagit%2Fp5-mst-13.2.git Don't assume that sizeof(int) >= sizeof(void*) --- diff --git a/doio.c b/doio.c index 14ecf1a..0db0e1a 100644 --- a/doio.c +++ b/doio.c @@ -1376,7 +1376,7 @@ SV **sp; } else { - I32 i = SvIV(astr); + IV i = SvIV(astr); a = (char *)i; /* ouch */ } SETERRNO(0,0); diff --git a/malloc.c b/malloc.c index 63db091..379861e 100644 --- a/malloc.c +++ b/malloc.c @@ -383,16 +383,13 @@ morecore(bucket) #ifndef atarist /* on the atari we dont have to worry about this */ op = (union overhead *)sbrk(0); # ifndef I286 -# ifdef PACK_MALLOC - if ((u_int)op & 0x7ff) - (void)sbrk(slack = 2048 - ((u_int)op & 0x7ff)); -# else - if ((u_int)op & 0x3ff) - (void)sbrk(slack = 1024 - ((u_int)op & 0x3ff)); -# endif + if ((UV)op & (0x7FF >> CHUNK_SHIFT)) { + slack = (0x800 >> CHUNK_SHIFT) - ((UV)op & (0x7FF >> CHUNK_SHIFT)); + (void)sbrk(slack); # if defined(DEBUGGING_MSTATS) - sbrk_slack += slack; + sbrk_slack += slack; # endif + } # else /* The sbrk(0) call on the I286 always returns the next segment */ # endif @@ -427,11 +424,11 @@ morecore(bucket) */ #ifndef I286 # ifdef PACK_MALLOC - if ((u_int)op & 0x7ff) + if ((UV)op & 0x7FF) croak("panic: Off-page sbrk"); # endif - if ((u_int)op & 7) { - op = (union overhead *)(((MEM_SIZE)op + 8) &~ 7); + if ((UV)op & 7) { + op = (union overhead *)(((UV)op + 8) & ~7); nblks--; } #else diff --git a/regexec.c b/regexec.c index 12908b2..c2ea8ff 100644 --- a/regexec.c +++ b/regexec.c @@ -1093,7 +1093,8 @@ char *prog; sayNO; break; default: - PerlIO_printf(PerlIO_stderr(), "%x %d\n",(unsigned)scan,scan[1]); + PerlIO_printf(PerlIO_stderr(), "%lx %d\n", + (unsigned long)scan, scan[1]); FAIL("regexp memory corruption"); } scan = next;