diff options
-rw-r--r-- | ext/standard/array.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c index 0b50cf3cb0..fcf901cc5a 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -2408,13 +2408,14 @@ PHP_FUNCTION(array_slice) length = num_in - offset; } - /* Initialize returned array */ - array_init_size(return_value, length > 0 ? (uint32_t)length : 0); - if (length <= 0) { + array_init(return_value); return; } + /* Initialize returned array */ + array_init_size(return_value, (uint32_t)length); + /* Start at the beginning and go until we hit offset */ pos = 0; ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(input), num_key, string_key, entry) { |