diff options
author | Xinchen Hui <laruence@php.net> | 2015-03-03 17:07:49 +0800 |
---|---|---|
committer | Xinchen Hui <laruence@php.net> | 2015-03-03 17:31:20 +0800 |
commit | 70bd500645da48f3c2eb2ebbe916a2abe51a48e0 (patch) | |
tree | f09462d7e81b8a8edfbb103da04ced2186bdaab9 | |
parent | a78998c48b062f119d9a0f1c941b85dc8733b429 (diff) | |
download | php-git-70bd500645da48f3c2eb2ebbe916a2abe51a48e0.tar.gz |
Fixed #69166 (Assigning array_values() to array does not reset key counter)
-rw-r--r-- | Zend/zend_hash.h | 2 | ||||
-rw-r--r-- | ext/standard/tests/array/bug69166.phpt | 17 |
2 files changed, 18 insertions, 1 deletions
diff --git a/Zend/zend_hash.h b/Zend/zend_hash.h index afa3602fae..30e0453f26 100644 --- a/Zend/zend_hash.h +++ b/Zend/zend_hash.h @@ -795,7 +795,7 @@ static zend_always_inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht, #define ZEND_HASH_FILL_END() \ __fill_ht->nNumUsed = __fill_idx; \ __fill_ht->nNumOfElements = __fill_idx; \ - __fill_ht->nNextFreeElement = __fill_idx + 1; \ + __fill_ht->nNextFreeElement = __fill_idx; \ __fill_ht->nInternalPointer = 0; \ } while (0) diff --git a/ext/standard/tests/array/bug69166.phpt b/ext/standard/tests/array/bug69166.phpt new file mode 100644 index 0000000000..d0b5fadd6d --- /dev/null +++ b/ext/standard/tests/array/bug69166.phpt @@ -0,0 +1,17 @@ +--TEST-- +Fixed #69166 (Assigning array_values() to array does not reset key counter) +--FILE-- +<?php + +$array = [0]; +$ar = array_values($array); +$ar[] = 1; +var_dump($ar); +?> +--EXPECT-- +array(2) { + [0]=> + int(0) + [1]=> + int(1) +} |