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

Reply via email to