MFB:- Fixed ZEND_SIGNED_MULTIPLY_LONG() so that ext/filter/tests/046.phpt wont fail. (Integer overflow)

This commit is contained in:
foobar 2007-04-10 10:57:54 +00:00
parent 28c5d45652
commit d34248e5f2

View File

@ -35,8 +35,8 @@
#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \ #define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \
long __lres = (a) * (b); \ long __lres = (a) * (b); \
double __dres = (double)(a) * (double)(b); \ long double __dres = (long double)(a) * (long double)(b); \
double __delta = (double) __lres - __dres; \ long double __delta = (long double) __lres - __dres; \
if ( ((usedval) = (( __dres + __delta ) != __dres))) { \ if ( ((usedval) = (( __dres + __delta ) != __dres))) { \
(dval) = __dres; \ (dval) = __dres; \
} else { \ } else { \