summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-04-07 23:14:17 +0400
committerDmitry Stogov <dmitry@zend.com>2014-04-07 23:14:17 +0400
commit3d17219cd88a73306acd6eeff8cbae02868318c6 (patch)
tree0fc6fbd9f710573bae5e55ce0d29caf327bfcbb6
parent3167b49ce9533a344cb2f16fa5c815f9f81bb434 (diff)
downloadphp-git-3d17219cd88a73306acd6eeff8cbae02868318c6.tar.gz
Refactored zend_hash_* iteration API zend_hash_fove_forward_ex(ht, pos) and family require second argument to be real pointer.
&(ht)->nInternalPointer should be passed instead of NULL. zend_hash_update_current_key() may work only with internal pointer.
-rw-r--r--Zend/zend_builtin_functions.c4
-rw-r--r--Zend/zend_execute_API.c10
-rw-r--r--Zend/zend_hash.c67
-rw-r--r--Zend/zend_hash.h32
-rw-r--r--Zend/zend_vm_def.h4
-rw-r--r--Zend/zend_vm_execute.h10
-rw-r--r--ext/pcre/php_pcre.c4
-rw-r--r--ext/session/php_session.h4
-rw-r--r--ext/standard/array.c2
-rw-r--r--ext/standard/http.c4
-rw-r--r--ext/standard/info.c2
-rw-r--r--ext/standard/streamsfuncs.c4
-rw-r--r--ext/standard/string.c4
-rw-r--r--ext/standard/user_filters.c2
-rw-r--r--main/php_ini.c2
15 files changed, 60 insertions, 95 deletions
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c
index b6dd50ddf4..b453676d63 100644
--- a/Zend/zend_builtin_functions.c
+++ b/Zend/zend_builtin_functions.c
@@ -618,7 +618,7 @@ ZEND_FUNCTION(each)
if (Z_REFCOUNTED_P(entry)) Z_ADDREF_P(entry);
/* add the key elements */
- switch (zend_hash_get_current_key_ex(target_hash, &key, &num_key, 0, NULL)) {
+ switch (zend_hash_get_current_key(target_hash, &key, &num_key, 0)) {
case HASH_KEY_IS_STRING:
inserted_pointer = add_get_index_str(return_value, 0, STR_COPY(key));
break;
@@ -1446,7 +1446,7 @@ ZEND_FUNCTION(get_included_files)
array_init(return_value);
zend_hash_internal_pointer_reset(&EG(included_files));
- while (zend_hash_get_current_key_ex(&EG(included_files), &entry, NULL, 0, NULL) == HASH_KEY_IS_STRING) {
+ while (zend_hash_get_current_key(&EG(included_files), &entry, NULL, 0) == HASH_KEY_IS_STRING) {
add_next_index_str(return_value, STR_COPY(entry));
zend_hash_move_forward(&EG(included_files));
}
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index a56b32a6f4..018e473995 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -601,7 +601,7 @@ ZEND_API int zval_update_constant_ex(zval *p, void *arg, zend_class_entry *scope
/* First go over the array and see if there are any constant indices */
zend_hash_internal_pointer_reset(Z_ARRVAL_P(p));
while ((element = zend_hash_get_current_data(Z_ARRVAL_P(p))) != NULL) {
- if (zend_hash_get_current_key_ex(Z_ARRVAL_P(p), &str_index, &num_index, 0, NULL) != HASH_KEY_IS_STRING) {
+ if (zend_hash_get_current_key(Z_ARRVAL_P(p), &str_index, &num_index, 0) != HASH_KEY_IS_STRING) {
zend_hash_move_forward(Z_ARRVAL_P(p));
continue;
}
@@ -666,17 +666,17 @@ ZEND_API int zval_update_constant_ex(zval *p, void *arg, zend_class_entry *scope
switch (Z_TYPE(const_value)) {
case IS_STRING:
- ret = zend_symtable_update_current_key(Z_ARRVAL_P(p), Z_STR(const_value), HASH_UPDATE_KEY_IF_BEFORE);
+ ret = zend_symtable_update_current_key_ex(Z_ARRVAL_P(p), Z_STR(const_value), HASH_UPDATE_KEY_IF_BEFORE);
break;
case IS_BOOL:
case IS_LONG:
- ret = zend_hash_update_current_key_ex(Z_ARRVAL_P(p), HASH_KEY_IS_LONG, NULL, Z_LVAL(const_value), HASH_UPDATE_KEY_IF_BEFORE, NULL);
+ ret = zend_hash_update_current_key_ex(Z_ARRVAL_P(p), HASH_KEY_IS_LONG, NULL, Z_LVAL(const_value), HASH_UPDATE_KEY_IF_BEFORE);
break;
case IS_DOUBLE:
- ret = zend_hash_update_current_key_ex(Z_ARRVAL_P(p), HASH_KEY_IS_LONG, NULL, zend_dval_to_lval(Z_DVAL(const_value)), HASH_UPDATE_KEY_IF_BEFORE, NULL);
+ ret = zend_hash_update_current_key_ex(Z_ARRVAL_P(p), HASH_KEY_IS_LONG, NULL, zend_dval_to_lval(Z_DVAL(const_value)), HASH_UPDATE_KEY_IF_BEFORE);
break;
case IS_NULL:
- ret = zend_hash_update_current_key_ex(Z_ARRVAL_P(p), HASH_KEY_IS_STRING, STR_EMPTY_ALLOC(), 0, HASH_UPDATE_KEY_IF_BEFORE, NULL);
+ ret = zend_hash_update_current_key_ex(Z_ARRVAL_P(p), HASH_KEY_IS_STRING, STR_EMPTY_ALLOC(), 0, HASH_UPDATE_KEY_IF_BEFORE);
break;
default:
ret = SUCCESS;
diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c
index 88bd2afccd..41e0bfcb02 100644
--- a/Zend/zend_hash.c
+++ b/Zend/zend_hash.c
@@ -1306,22 +1306,13 @@ ZEND_API void zend_hash_internal_pointer_reset_ex(HashTable *ht, HashPosition *p
uint idx;
IS_CONSISTENT(ht);
-
for (idx = 0; idx < ht->nNumUsed; idx++) {
if (Z_TYPE(ht->arData[idx].val) != IS_UNDEF) {
- if (pos) {
- *pos = idx;
- } else {
- ht->nInternalPointer = idx;
- }
+ *pos = idx;
return;
}
}
- if (pos) {
- *pos = INVALID_IDX;
- } else {
- ht->nInternalPointer = INVALID_IDX;
- }
+ *pos = INVALID_IDX;
}
@@ -1338,26 +1329,17 @@ ZEND_API void zend_hash_internal_pointer_end_ex(HashTable *ht, HashPosition *pos
while (idx > 0) {
idx--;
if (Z_TYPE(ht->arData[idx].val) != IS_UNDEF) {
- if (pos) {
- *pos = idx;
- } else {
- ht->nInternalPointer = idx;
- }
+ *pos = idx;
return;
}
}
- if (pos) {
- *pos = INVALID_IDX;
- } else {
- ht->nInternalPointer = INVALID_IDX;
- }
+ *pos = INVALID_IDX;
}
ZEND_API int zend_hash_move_forward_ex(HashTable *ht, HashPosition *pos)
{
- HashPosition *current = pos ? pos : &ht->nInternalPointer;
- uint idx = *current;
+ uint idx = *pos;
IS_CONSISTENT(ht);
@@ -1365,11 +1347,11 @@ ZEND_API int zend_hash_move_forward_ex(HashTable *ht, HashPosition *pos)
while (1) {
idx++;
if (idx >= ht->nNumUsed) {
- *current = INVALID_IDX;
+ *pos = INVALID_IDX;
return SUCCESS;
}
if (Z_TYPE(ht->arData[idx].val) != IS_UNDEF) {
- *current = idx;
+ *pos = idx;
return SUCCESS;
}
}
@@ -1380,8 +1362,7 @@ ZEND_API int zend_hash_move_forward_ex(HashTable *ht, HashPosition *pos)
ZEND_API int zend_hash_move_backwards_ex(HashTable *ht, HashPosition *pos)
{
- HashPosition *current = pos ? pos : &ht->nInternalPointer;
- uint idx = *current;
+ uint idx = *pos;
IS_CONSISTENT(ht);
@@ -1389,11 +1370,11 @@ ZEND_API int zend_hash_move_backwards_ex(HashTable *ht, HashPosition *pos)
while (idx > 0) {
idx--;
if (Z_TYPE(ht->arData[idx].val) != IS_UNDEF) {
- *current = idx;
+ *pos = idx;
return SUCCESS;
}
}
- *current = INVALID_IDX;
+ *pos = INVALID_IDX;
return SUCCESS;
} else {
return FAILURE;
@@ -1404,13 +1385,10 @@ ZEND_API int zend_hash_move_backwards_ex(HashTable *ht, HashPosition *pos)
/* This function should be made binary safe */
ZEND_API int zend_hash_get_current_key_ex(const HashTable *ht, zend_string **str_index, ulong *num_index, zend_bool duplicate, HashPosition *pos)
{
- uint idx;
+ uint idx = *pos;
Bucket *p;
- idx = pos ? (*pos) : ht->nInternalPointer;
-
IS_CONSISTENT(ht);
-
if (idx != INVALID_IDX) {
p = ht->arData + idx;
if (p->key) {
@@ -1430,13 +1408,10 @@ ZEND_API int zend_hash_get_current_key_ex(const HashTable *ht, zend_string **str
ZEND_API void zend_hash_get_current_key_zval_ex(const HashTable *ht, zval *key, HashPosition *pos)
{
- uint idx;
+ uint idx = *pos;
Bucket *p;
IS_CONSISTENT(ht);
-
- idx = pos ? (*pos) : ht->nInternalPointer;
-
if (idx == INVALID_IDX) {
ZVAL_NULL(key);
} else {
@@ -1452,13 +1427,10 @@ ZEND_API void zend_hash_get_current_key_zval_ex(const HashTable *ht, zval *key,
ZEND_API int zend_hash_get_current_key_type_ex(HashTable *ht, HashPosition *pos)
{
- uint idx;
+ uint idx = *pos;
Bucket *p;
- idx = pos ? (*pos) : ht->nInternalPointer;
-
IS_CONSISTENT(ht);
-
if (idx != INVALID_IDX) {
p = ht->arData + idx;
if (p->key) {
@@ -1473,13 +1445,10 @@ ZEND_API int zend_hash_get_current_key_type_ex(HashTable *ht, HashPosition *pos)
ZEND_API zval *zend_hash_get_current_data_ex(HashTable *ht, HashPosition *pos)
{
- uint idx;
+ uint idx = *pos;
Bucket *p;
- idx = pos ? (*pos) : ht->nInternalPointer;
-
IS_CONSISTENT(ht);
-
if (idx != INVALID_IDX) {
p = ht->arData + idx;
return &p->val;
@@ -1491,19 +1460,17 @@ ZEND_API zval *zend_hash_get_current_data_ex(HashTable *ht, HashPosition *pos)
/* This function changes key of current element without changing elements'
* order. If element with target key already exists, it will be deleted first.
*/
-ZEND_API int zend_hash_update_current_key_ex(HashTable *ht, int key_type, zend_string *str_index, ulong num_index, int mode, HashPosition *pos)
+ZEND_API int zend_hash_update_current_key_ex(HashTable *ht, int key_type, zend_string *str_index, ulong num_index, int mode)
{
- uint idx1, idx2;
+ uint idx1 = ht->nInternalPointer;
+ uint idx2;
Bucket *p, *q;
ulong h;
#ifdef ZEND_SIGNALS
TSRMLS_FETCH();
#endif
- idx1 = pos ? (*pos) : ht->nInternalPointer;
-
IS_CONSISTENT(ht);
-
if (idx1 != INVALID_IDX) {
p = ht->arData + idx1;
if (key_type == HASH_KEY_IS_LONG) {
diff --git a/Zend/zend_hash.h b/Zend/zend_hash.h
index ee31071cd9..11dc92d3c3 100644
--- a/Zend/zend_hash.h
+++ b/Zend/zend_hash.h
@@ -151,7 +151,7 @@ ZEND_API int zend_hash_get_current_key_type_ex(HashTable *ht, HashPosition *pos)
ZEND_API zval *zend_hash_get_current_data_ex(HashTable *ht, HashPosition *pos);
ZEND_API void zend_hash_internal_pointer_reset_ex(HashTable *ht, HashPosition *pos);
ZEND_API void zend_hash_internal_pointer_end_ex(HashTable *ht, HashPosition *pos);
-ZEND_API int zend_hash_update_current_key_ex(HashTable *ht, int key_type, zend_string *str_index, ulong num_index, int mode, HashPosition *pos);
+ZEND_API int zend_hash_update_current_key_ex(HashTable *ht, int key_type, zend_string *str_index, ulong num_index, int mode);
typedef struct _HashPointer {
HashPosition pos;
@@ -163,25 +163,25 @@ ZEND_API int zend_hash_get_pointer(const HashTable *ht, HashPointer *ptr);
ZEND_API int zend_hash_set_pointer(HashTable *ht, const HashPointer *ptr);
#define zend_hash_has_more_elements(ht) \
- zend_hash_has_more_elements_ex(ht, NULL)
+ zend_hash_has_more_elements_ex(ht, &(ht)->nInternalPointer)
#define zend_hash_move_forward(ht) \
- zend_hash_move_forward_ex(ht, NULL)
+ zend_hash_move_forward_ex(ht, &(ht)->nInternalPointer)
#define zend_hash_move_backwards(ht) \
- zend_hash_move_backwards_ex(ht, NULL)
+ zend_hash_move_backwards_ex(ht, &(ht)->nInternalPointer)
#define zend_hash_get_current_key(ht, str_index, num_index, duplicate) \
- zend_hash_get_current_key_ex(ht, str_index, num_index, duplicate, NULL)
+ zend_hash_get_current_key_ex(ht, str_index, num_index, duplicate, &(ht)->nInternalPointer)
#define zend_hash_get_current_key_zval(ht, key) \
- zend_hash_get_current_key_zval_ex(ht, key, NULL)
+ zend_hash_get_current_key_zval_ex(ht, key, &(ht)->nInternalPointer)
#define zend_hash_get_current_key_type(ht) \
- zend_hash_get_current_key_type_ex(ht, NULL)
+ zend_hash_get_current_key_type_ex(ht, &(ht)->nInternalPointer)
#define zend_hash_get_current_data(ht) \
- zend_hash_get_current_data_ex(ht, NULL)
+ zend_hash_get_current_data_ex(ht, &(ht)->nInternalPointer)
#define zend_hash_internal_pointer_reset(ht) \
- zend_hash_internal_pointer_reset_ex(ht, NULL)
+ zend_hash_internal_pointer_reset_ex(ht, &(ht)->nInternalPointer)
#define zend_hash_internal_pointer_end(ht) \
- zend_hash_internal_pointer_end_ex(ht, NULL)
+ zend_hash_internal_pointer_end_ex(ht, &(ht)->nInternalPointer)
#define zend_hash_update_current_key(ht, key_type, str_index, str_length, num_index) \
- zend_hash_update_current_key_ex(ht, key_type, str_index, str_length, num_index, HASH_UPDATE_KEY_ANYWAY, NULL)
+ zend_hash_update_current_key_ex(ht, key_type, str_index, str_length, num_index, HASH_UPDATE_KEY_ANYWAY)
/* Copying, merging and sorting */
ZEND_API void zend_hash_copy(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor);
@@ -372,13 +372,11 @@ static inline int zend_symtable_str_exists(HashTable *ht, const char *str, int l
return zend_hash_str_exists(ht, str, len);
}
-static inline int zend_symtable_update_current_key_ex(HashTable *ht, zend_string *key, int mode, HashPosition *pos)
+static inline int zend_symtable_update_current_key_ex(HashTable *ht, zend_string *key, int mode)
{
-ZEND_HANDLE_NUMERIC(key->val, key->len+1, zend_hash_update_current_key_ex(ht, HASH_KEY_IS_LONG, NULL, idx, mode, pos));
- return zend_hash_update_current_key_ex(ht, HASH_KEY_IS_STRING, key, 0, mode, pos);
+ZEND_HANDLE_NUMERIC(key->val, key->len+1, zend_hash_update_current_key_ex(ht, HASH_KEY_IS_LONG, NULL, idx, mode));
+ return zend_hash_update_current_key_ex(ht, HASH_KEY_IS_STRING, key, 0, mode);
}
-#define zend_symtable_update_current_key(ht, key, mode) \
- zend_symtable_update_current_key_ex(ht, key, mode, NULL)
static inline void *zend_hash_add_ptr(HashTable *ht, zend_string *key, void *pData)
{
@@ -533,7 +531,7 @@ static inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht, HashPositio
}
#define zend_hash_get_current_data_ptr(ht) \
- zend_hash_get_current_data_ptr_ex(ht, NULL)
+ zend_hash_get_current_data_ptr_ex(ht, &(ht)->nInternalPointer)
#endif /* ZEND_HASH_H */
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index 16e8d7a6b2..f028d2cb66 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -4266,7 +4266,7 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET, CONST|TMP|VAR|CV, ANY)
ulong int_key;
zend_uchar key_type;
- key_type = zend_hash_get_current_key_ex(fe_ht, &str_key, &int_key, 0, NULL);
+ key_type = zend_hash_get_current_key(fe_ht, &str_key, &int_key, 0);
if (key_type != HASH_KEY_NON_EXISTENT &&
(key_type == HASH_KEY_IS_LONG ||
zend_check_property_access(zobj, str_key TSRMLS_CC) == SUCCESS)) {
@@ -4339,7 +4339,7 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH, VAR, ANY)
}
}
- key_type = zend_hash_get_current_key_ex(fe_ht, &str_key, &int_key, 0, NULL);
+ key_type = zend_hash_get_current_key(fe_ht, &str_key, &int_key, 0);
zend_hash_move_forward(fe_ht);
if (key_type == HASH_KEY_IS_LONG ||
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 80bbe89bfb..cd91880803 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -3092,7 +3092,7 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
ulong int_key;
zend_uchar key_type;
- key_type = zend_hash_get_current_key_ex(fe_ht, &str_key, &int_key, 0, NULL);
+ key_type = zend_hash_get_current_key(fe_ht, &str_key, &int_key, 0);
if (key_type != HASH_KEY_NON_EXISTENT &&
(key_type == HASH_KEY_IS_LONG ||
zend_check_property_access(zobj, str_key TSRMLS_CC) == SUCCESS)) {
@@ -8148,7 +8148,7 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
ulong int_key;
zend_uchar key_type;
- key_type = zend_hash_get_current_key_ex(fe_ht, &str_key, &int_key, 0, NULL);
+ key_type = zend_hash_get_current_key(fe_ht, &str_key, &int_key, 0);
if (key_type != HASH_KEY_NON_EXISTENT &&
(key_type == HASH_KEY_IS_LONG ||
zend_check_property_access(zobj, str_key TSRMLS_CC) == SUCCESS)) {
@@ -13246,7 +13246,7 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
ulong int_key;
zend_uchar key_type;
- key_type = zend_hash_get_current_key_ex(fe_ht, &str_key, &int_key, 0, NULL);
+ key_type = zend_hash_get_current_key(fe_ht, &str_key, &int_key, 0);
if (key_type != HASH_KEY_NON_EXISTENT &&
(key_type == HASH_KEY_IS_LONG ||
zend_check_property_access(zobj, str_key TSRMLS_CC) == SUCCESS)) {
@@ -13319,7 +13319,7 @@ static int ZEND_FASTCALL ZEND_FE_FETCH_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
}
}
- key_type = zend_hash_get_current_key_ex(fe_ht, &str_key, &int_key, 0, NULL);
+ key_type = zend_hash_get_current_key(fe_ht, &str_key, &int_key, 0);
zend_hash_move_forward(fe_ht);
if (key_type == HASH_KEY_IS_LONG ||
@@ -29701,7 +29701,7 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
ulong int_key;
zend_uchar key_type;
- key_type = zend_hash_get_current_key_ex(fe_ht, &str_key, &int_key, 0, NULL);
+ key_type = zend_hash_get_current_key(fe_ht, &str_key, &int_key, 0);
if (key_type != HASH_KEY_NON_EXISTENT &&
(key_type == HASH_KEY_IS_LONG ||
zend_check_property_access(zobj, str_key TSRMLS_CC) == SUCCESS)) {
diff --git a/ext/pcre/php_pcre.c b/ext/pcre/php_pcre.c
index eb77a39cb3..2c228f0230 100644
--- a/ext/pcre/php_pcre.c
+++ b/ext/pcre/php_pcre.c
@@ -1375,7 +1375,7 @@ static void preg_replace_impl(INTERNAL_FUNCTION_PARAMETERS, int is_callable_repl
if ((result = php_replace_in_subject(regex, replace, subject_entry, limit_val, is_callable_replace, &replace_count TSRMLS_CC)) != NULL) {
if (!is_filter || replace_count > old_replace_count) {
/* Add to return array */
- switch(zend_hash_get_current_key_ex(Z_ARRVAL_P(subject), &string_key, &num_key, 0, NULL))
+ switch(zend_hash_get_current_key(Z_ARRVAL_P(subject), &string_key, &num_key, 0))
{
case HASH_KEY_IS_STRING:
add_assoc_str_ex(return_value, string_key->val, string_key->len, result);
@@ -1824,7 +1824,7 @@ PHPAPI void php_pcre_grep_impl(pcre_cache_entry *pce, zval *input, zval *return
}
/* Add to return array */
- switch (zend_hash_get_current_key_ex(Z_ARRVAL_P(input), &string_key, &num_key, 0, NULL))
+ switch (zend_hash_get_current_key(Z_ARRVAL_P(input), &string_key, &num_key, 0))
{
case HASH_KEY_IS_STRING:
zend_hash_update(Z_ARRVAL_P(return_value), string_key, entry);
diff --git a/ext/session/php_session.h b/ext/session/php_session.h
index 0153fe97e8..608d6bfdc2 100644
--- a/ext/session/php_session.h
+++ b/ext/session/php_session.h
@@ -262,8 +262,8 @@ PHPAPI void php_session_reset_id(TSRMLS_D);
int key_type; \
\
for (zend_hash_internal_pointer_reset(_ht); \
- (key_type = zend_hash_get_current_key_ex(_ht, &key, \
- &num_key, 0, NULL)) != HASH_KEY_NON_EXISTENT; \
+ (key_type = zend_hash_get_current_key(_ht, &key, \
+ &num_key, 0)) != HASH_KEY_NON_EXISTENT; \
zend_hash_move_forward(_ht)) { \
if (key_type == HASH_KEY_IS_LONG) { \
php_error_docref(NULL TSRMLS_CC, E_NOTICE, \
diff --git a/ext/standard/array.c b/ext/standard/array.c
index b38dc6dceb..4f32345630 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -2015,7 +2015,7 @@ static void _phpi_pop(INTERNAL_FUNCTION_PARAMETERS, int off_the_end)
RETVAL_ZVAL_FAST(val);
/* Delete the first or last value */
- zend_hash_get_current_key_ex(Z_ARRVAL_P(stack), &key, &index, 0, NULL);
+ zend_hash_get_current_key(Z_ARRVAL_P(stack), &key, &index, 0);
if (key && Z_ARRVAL_P(stack) == &EG(symbol_table).ht) {
zend_delete_global_variable(key TSRMLS_CC);
} else if (key) {
diff --git a/ext/standard/http.c b/ext/standard/http.c
index fc5727d7ce..46af753ecc 100644
--- a/ext/standard/http.c
+++ b/ext/standard/http.c
@@ -55,7 +55,7 @@ PHPAPI int php_url_encode_hash_ex(HashTable *ht, smart_str *formstr,
arg_sep_len = strlen(arg_sep);
for (zend_hash_internal_pointer_reset(ht);
- (key_type = zend_hash_get_current_key_ex(ht, &key, &idx, 0, NULL)) != HASH_KEY_NON_EXISTENT;
+ (key_type = zend_hash_get_current_key(ht, &key, &idx, 0)) != HASH_KEY_NON_EXISTENT;
zend_hash_move_forward(ht)
) {
/* handling for private & protected object properties */
@@ -78,7 +78,7 @@ PHPAPI int php_url_encode_hash_ex(HashTable *ht, smart_str *formstr,
prop_len = 0;
}
- if ((zdata = zend_hash_get_current_data_ex(ht, NULL)) == NULL) {
+ if ((zdata = zend_hash_get_current_data(ht)) == NULL) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Error traversing form data array");
return FAILURE;
}
diff --git a/ext/standard/info.c b/ext/standard/info.c
index 307bacd10a..ea2278a76b 100644
--- a/ext/standard/info.c
+++ b/ext/standard/info.c
@@ -214,7 +214,7 @@ static void php_print_gpcse_array(char *name, uint name_length TSRMLS_DC)
php_info_print(name);
php_info_print("[\"");
- switch (zend_hash_get_current_key_ex(Z_ARRVAL_P(data), &string_key, &num_key, 0, NULL)) {
+ switch (zend_hash_get_current_key(Z_ARRVAL_P(data), &string_key, &num_key, 0)) {
case HASH_KEY_IS_STRING:
if (!sapi_module.phpinfo_as_text) {
php_info_print_html_esc(string_key->val, string_key->len);
diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c
index 3524ae9c63..6da9a008f5 100644
--- a/ext/standard/streamsfuncs.c
+++ b/ext/standard/streamsfuncs.c
@@ -664,8 +664,8 @@ static int stream_array_from_fd_set(zval *stream_array, fd_set *fds TSRMLS_DC)
int tmp_fd;
- type = zend_hash_get_current_key_ex(Z_ARRVAL_P(stream_array),
- &key, &num_ind, 0, NULL);
+ type = zend_hash_get_current_key(Z_ARRVAL_P(stream_array),
+ &key, &num_ind, 0);
if (type == HASH_KEY_NON_EXISTENT ||
(elem = zend_hash_get_current_data(Z_ARRVAL_P(stream_array))) == NULL) {
continue; /* should not happen */
diff --git a/ext/standard/string.c b/ext/standard/string.c
index e353b5d536..f671e1ebf0 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -3958,8 +3958,8 @@ static void php_str_replace_common(INTERNAL_FUNCTION_PARAMETERS, int case_sensit
COPY_PZVAL_TO_ZVAL(result, subject_entry);
}
/* Add to return array */
- switch (zend_hash_get_current_key_ex(Z_ARRVAL_P(subject), &string_key,
- &num_key, 0, NULL)) {
+ switch (zend_hash_get_current_key(Z_ARRVAL_P(subject), &string_key,
+ &num_key, 0)) {
case HASH_KEY_IS_STRING:
zend_hash_update(Z_ARRVAL_P(return_value), string_key, &result);
break;
diff --git a/ext/standard/user_filters.c b/ext/standard/user_filters.c
index 9e720aea49..00702f0fb9 100644
--- a/ext/standard/user_filters.c
+++ b/ext/standard/user_filters.c
@@ -544,7 +544,7 @@ PHP_FUNCTION(stream_get_filters)
if (filters_hash) {
for(zend_hash_internal_pointer_reset(filters_hash);
- (key_flags = zend_hash_get_current_key_ex(filters_hash, &filter_name, &num_key, 0, NULL)) != HASH_KEY_NON_EXISTENT;
+ (key_flags = zend_hash_get_current_key(filters_hash, &filter_name, &num_key, 0)) != HASH_KEY_NON_EXISTENT;
zend_hash_move_forward(filters_hash))
if (key_flags == HASH_KEY_IS_STRING) {
add_next_index_str(return_value, STR_COPY(filter_name));
diff --git a/main/php_ini.c b/main/php_ini.c
index a1b2cecabc..024dbe6821 100644
--- a/main/php_ini.c
+++ b/main/php_ini.c
@@ -765,7 +765,7 @@ PHPAPI void php_ini_activate_config(HashTable *source_hash, int modify_type, int
/* Walk through config hash and alter matching ini entries using the values found in the hash */
for (zend_hash_internal_pointer_reset(source_hash);
- zend_hash_get_current_key_ex(source_hash, &str, &num_index, 0, NULL) == HASH_KEY_IS_STRING;
+ zend_hash_get_current_key(source_hash, &str, &num_index, 0) == HASH_KEY_IS_STRING;
zend_hash_move_forward(source_hash)
) {
data = zend_hash_get_current_data(source_hash);