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