helly Tue Mar 23 17:30:26 2004 EDT Added files: /php-src/ext/standard/tests/math bug27646.phpt
Modified files: /php-src/ext/standard basic_functions.c var_unserializer.re Log: - Allow negative infinity - Register missing constants, they work anyway but cause an E_NOTICE # generation by atof() should be portable enough (afaik) http://cvs.php.net/diff.php/php-src/ext/standard/basic_functions.c?r1=1.654&r2=1.655&ty=u Index: php-src/ext/standard/basic_functions.c diff -u php-src/ext/standard/basic_functions.c:1.654 php-src/ext/standard/basic_functions.c:1.655 --- php-src/ext/standard/basic_functions.c:1.654 Wed Mar 10 14:12:49 2004 +++ php-src/ext/standard/basic_functions.c Tue Mar 23 17:30:25 2004 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: basic_functions.c,v 1.654 2004/03/10 19:12:49 rasmus Exp $ */ +/* $Id: basic_functions.c,v 1.655 2004/03/23 22:30:25 helly Exp $ */ #include "php.h" #include "php_streams.h" @@ -982,6 +982,8 @@ REGISTER_MATH_CONSTANT(M_2_SQRTPI); REGISTER_MATH_CONSTANT(M_SQRT2); REGISTER_MATH_CONSTANT(M_SQRT1_2); + REGISTER_DOUBLE_CONSTANT("INF", atof("INF"), CONST_CS | CONST_PERSISTENT); + REGISTER_DOUBLE_CONSTANT("NAN", atof("NAN"), CONST_CS | CONST_PERSISTENT); #if ENABLE_TEST_CLASS test_class_startup(); http://cvs.php.net/diff.php/php-src/ext/standard/var_unserializer.re?r1=1.25&r2=1.26&ty=u Index: php-src/ext/standard/var_unserializer.re diff -u php-src/ext/standard/var_unserializer.re:1.25 php-src/ext/standard/var_unserializer.re:1.26 --- php-src/ext/standard/var_unserializer.re:1.25 Tue Mar 23 15:52:58 2004 +++ php-src/ext/standard/var_unserializer.re Tue Mar 23 17:30:25 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: var_unserializer.re,v 1.25 2004/03/23 20:52:58 helly Exp $ */ +/* $Id: var_unserializer.re,v 1.26 2004/03/23 22:30:25 helly Exp $ */ #include "php.h" #include "ext/standard/php_var.h" @@ -320,7 +320,7 @@ return 1; } -"d:" (iv | nv | nvexp | "NAN" | "INF") ";" { +"d:" (iv | nv | nvexp | "NAN" | "-"? "INF") ";" { *p = YYCURSOR; INIT_PZVAL(*rval); ZVAL_DOUBLE(*rval, atof(start + 2)); http://cvs.php.net/co.php/php-src/ext/standard/tests/math/bug27646.phpt?r=1.1&p=1 Index: php-src/ext/standard/tests/math/bug27646.phpt +++ php-src/ext/standard/tests/math/bug27646.phpt --TEST-- Bug #27646 (Cannot serialize/unserialize non-finite numeric values) --FILE-- <?php $f=-(float)INF; var_dump($f); var_dump(serialize($f)); var_dump(unserialize(serialize($f))); $f=(float)INF; var_dump($f); var_dump(serialize($f)); var_dump(unserialize(serialize($f))); $f=(float)NAN; var_dump($f); var_dump(serialize($f)); var_dump(unserialize(serialize($f))); ?> --EXPECT-- float(-INF) string(7) "d:-INF;" float(-INF) float(INF) string(6) "d:INF;" float(INF) float(NAN) string(6) "d:NAN;" float(NAN) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php