diff options
Diffstat (limited to 'ext/standard/array.c')
-rw-r--r-- | ext/standard/array.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c index 58b5349bab..32a0edde6e 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -81,6 +81,8 @@ php_array_globals array_globals; #define INTERSECT_NORMAL 0 #define INTERSECT_ASSOC 1 +#define DOUBLE_DRIFT_FIX 0.000000000000001 + PHP_MINIT_FUNCTION(array) { #ifdef ZTS @@ -1543,7 +1545,7 @@ double_str: err = 1; goto err; } - for (; low >= high; low -= step) { + for (; low >= (high - DOUBLE_DRIFT_FIX); low -= step) { add_next_index_double(return_value, low); } } else if (high > low) { /* Positive steps */ @@ -1551,7 +1553,7 @@ double_str: err = 1; goto err; } - for (; low <= high; low += step) { + for (; low <= (high + DOUBLE_DRIFT_FIX); low += step) { add_next_index_double(return_value, low); } } else { |