summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/array.c7
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) {