summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2015-03-03 17:07:49 +0800
committerXinchen Hui <laruence@php.net>2015-03-03 17:31:20 +0800
commit70bd500645da48f3c2eb2ebbe916a2abe51a48e0 (patch)
treef09462d7e81b8a8edfbb103da04ced2186bdaab9
parenta78998c48b062f119d9a0f1c941b85dc8733b429 (diff)
downloadphp-git-70bd500645da48f3c2eb2ebbe916a2abe51a48e0.tar.gz
Fixed #69166 (Assigning array_values() to array does not reset key counter)
-rw-r--r--Zend/zend_hash.h2
-rw-r--r--ext/standard/tests/array/bug69166.phpt17
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)
+}