summaryrefslogtreecommitdiff
path: root/ext/standard/basic_functions.c
diff options
context:
space:
mode:
authorAndrea Faulds <ajf@ajf.me>2016-03-20 01:32:44 +0000
committerAndrea Faulds <ajf@ajf.me>2016-03-20 01:32:44 +0000
commit1c1e20d77160c5ccc402458effa9df56399ca5da (patch)
tree63de5ab9a5ecce58c49a13ee62ee92a2615ba445 /ext/standard/basic_functions.c
parentba4b2a60f932b05c929b843aaf010ac740579e2d (diff)
downloadphp-git-1c1e20d77160c5ccc402458effa9df56399ca5da.tar.gz
Deduplicate NAN/INF portability, move to Zend
Diffstat (limited to 'ext/standard/basic_functions.c')
-rw-r--r--ext/standard/basic_functions.c35
1 files changed, 6 insertions, 29 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index f8121c1ebf..b1ac80fd94 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -48,6 +48,8 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE;
#include "zend_language_scanner.h"
#include <zend_language_parser.h>
+#include "zend_portability.h"
+
#include <stdarg.h>
#include <stdlib.h>
#include <math.h>
@@ -3484,40 +3486,15 @@ static void basic_globals_dtor(php_basic_globals *basic_globals_p) /* {{{ */
}
/* }}} */
-#define PHP_DOUBLE_INFINITY_HIGH 0x7ff00000
-#define PHP_DOUBLE_QUIET_NAN_HIGH 0xfff80000
-
PHPAPI double php_get_nan(void) /* {{{ */
{
-#if HAVE_HUGE_VAL_NAN
- return HUGE_VAL + -HUGE_VAL;
-#elif defined(__i386__) || defined(_X86_) || defined(ALPHA) || defined(_ALPHA) || defined(__alpha)
- double val = 0.0;
- ((uint32_t*)&val)[1] = PHP_DOUBLE_QUIET_NAN_HIGH;
- ((uint32_t*)&val)[0] = 0;
- return val;
-#elif HAVE_ATOF_ACCEPTS_NAN
- return atof("NAN");
-#else
- return 0.0/0.0;
-#endif
+ return ZEND_NAN;
}
/* }}} */
PHPAPI double php_get_inf(void) /* {{{ */
{
-#if HAVE_HUGE_VAL_INF
- return HUGE_VAL;
-#elif defined(__i386__) || defined(_X86_) || defined(ALPHA) || defined(_ALPHA) || defined(__alpha)
- double val = 0.0;
- ((uint32_t*)&val)[1] = PHP_DOUBLE_INFINITY_HIGH;
- ((uint32_t*)&val)[0] = 0;
- return val;
-#elif HAVE_ATOF_ACCEPTS_INF
- return atof("INF");
-#else
- return 1.0/0.0;
-#endif
+ return ZEND_INFINITY;
}
/* }}} */
@@ -3609,8 +3586,8 @@ PHP_MINIT_FUNCTION(basic) /* {{{ */
REGISTER_MATH_CONSTANT(M_SQRT2);
REGISTER_MATH_CONSTANT(M_SQRT1_2);
REGISTER_MATH_CONSTANT(M_SQRT3);
- REGISTER_DOUBLE_CONSTANT("INF", php_get_inf(), CONST_CS | CONST_PERSISTENT);
- REGISTER_DOUBLE_CONSTANT("NAN", php_get_nan(), CONST_CS | CONST_PERSISTENT);
+ REGISTER_DOUBLE_CONSTANT("INF", ZEND_INFINITY, CONST_CS | CONST_PERSISTENT);
+ REGISTER_DOUBLE_CONSTANT("NAN", ZEND_NAN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PHP_ROUND_HALF_UP", PHP_ROUND_HALF_UP, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PHP_ROUND_HALF_DOWN", PHP_ROUND_HALF_DOWN, CONST_CS | CONST_PERSISTENT);