Can't post to php-cvs :-( > > jeroen Sun Aug 5 16:27:04 2001 EDT > > > > Modified files: > > /php4/ext/standard math.c > > Log: > > Bugfix in abs(), abs(LONG_MIN) was bogus > > ---AND--- > - Replaced the pow(LONG_MIN,1) fix for a better one > - Removed bogus left-over comment in pow() > ------ > > (thought I already committed that...) > > > > > Index: php4/ext/standard/math.c > > diff -u php4/ext/standard/math.c:1.51 php4/ext/standard/math.c:1.52 > > --- php4/ext/standard/math.c:1.51 Sun Aug 5 10:40:14 2001 > > +++ php4/ext/standard/math.c Sun Aug 5 16:27:03 2001 > > @@ -19,7 +19,7 @@ > > > +----------------------------------------------------------------------+ > > */ > > > > -/* $Id: math.c,v 1.51 2001/08/05 14:40:14 stas Exp $ */ > > +/* $Id: math.c,v 1.52 2001/08/05 20:27:03 jeroen Exp $ */ > > > > #include "php.h" > > #include "php_math.h" > > @@ -49,7 +49,11 @@ > > if (Z_TYPE_PP(value) == IS_DOUBLE) { > > RETURN_DOUBLE(fabs(Z_DVAL_PP(value))); > > } else if (Z_TYPE_PP(value) == IS_LONG) { > > - RETURN_LONG(Z_LVAL_PP(value) < 0 ? -Z_LVAL_PP(value) : > Z_LVAL_PP(value)); > > + if (Z_LVAL_PP(value) == LONG_MIN) { > > + RETURN_DOUBLE(-(double)LONG_MIN); > > + } else { > > + RETURN_LONG(Z_LVAL_PP(value) < 0 ? -Z_LVAL_PP(value) : > Z_LVAL_PP(value)); > > + } > > } > > > > RETURN_FALSE; > > @@ -466,19 +470,10 @@ > > } > > case 1: > > RETURN_LONG(1); > > - case LONG_MIN: /* special case since -LONG_MIN == 0 */ > > - /* lexp != 0, and only lexp==1 is LONG, DOUBLE otherwise */ > > - if (lexp == 1) { > > - RETURN_LONG(LONG_MIN); > > - } else { > > - dval = exp(log(-(double)LONG_MIN) * (double)lexp); > > - RETURN_DOUBLE(lexp&1 ? -dval : dval); > > - } > > default: > > /* abs(lbase) > 1 */ > > - dval = exp(log((double) (lbase>0?lbase:-lbase)) * > > + dval = exp(log(lbase>0? (double)lbase : -(double)lbase ) * > > (double) lexp); > > - /* long result = 1; */ > > if (lexp < 0 || dval > (double) LONG_MAX) { > > /* 1/n ( abs(n) > 1 ) || overflow */ > > RETURN_DOUBLE(((lexp & 1) && lbase<0) ? -dval : dval); > > > > > -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]