From 9b783107e550584b6e4b00d424d29c82b88a1286 Mon Sep 17 00:00:00 2001 From: Kalle Sommer Nielsen Date: Wed, 17 Aug 2016 14:10:24 +0200 Subject: [PATCH] Fix build as done in master in commit 040331c36462eac94308bbef3200ee11389ca444 The reason why we cannot use round() here, is that it does not come with the standard C library on Windows, I don't think this affects other systems. At the same time, also expose _php_math_round() --- ext/standard/array.c | 3 ++- ext/standard/php_math.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ext/standard/array.c b/ext/standard/array.c index 538460bdcc..fbbf3cf078 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -45,6 +45,7 @@ #include "basic_functions.h" #include "php_string.h" #include "php_rand.h" +#include "php_math.h" #include "zend_smart_str.h" #ifdef HAVE_SPL #include "ext/spl/spl_array.h" @@ -2106,7 +2107,7 @@ PHP_FUNCTION(array_fill_keys) php_error_docref(NULL, E_WARNING, "The supplied range exceeds the maximum array size: start=%0.0f end=%0.0f", end, start); \ RETURN_FALSE; \ } \ - size = (uint32_t)round(__calc_size); \ + size = (uint32_t)_php_math_round(__calc_size, 0, PHP_ROUND_HALF_UP); \ array_init_size(return_value, size); \ zend_hash_real_init(Z_ARRVAL_P(return_value), 1); \ } while (0) diff --git a/ext/standard/php_math.h b/ext/standard/php_math.h index 406fd49dcd..62c089bf48 100644 --- a/ext/standard/php_math.h +++ b/ext/standard/php_math.h @@ -22,6 +22,7 @@ #ifndef PHP_MATH_H #define PHP_MATH_H +PHPAPI double _php_math_round(double, int, int); PHPAPI zend_string *_php_math_number_format(double, int, char, char); PHPAPI zend_string *_php_math_number_format_ex(double, int, char *, size_t, char *, size_t); PHPAPI zend_string * _php_math_longtobase(zval *arg, int base); -- 2.40.0