summaryrefslogtreecommitdiff
path: root/Zend/zend_objects.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-04-18 19:18:11 +0400
committerDmitry Stogov <dmitry@zend.com>2014-04-18 19:18:11 +0400
commit7652a977a88b825f66959e91a7c8c54b720a50bc (patch)
tree5285e86c91ccbf5d6cb708a13c443f5be6a806b6 /Zend/zend_objects.c
parentea2e1bb1eb7dd0ca1ce6d731190b2a6b2046a645 (diff)
downloadphp-git-7652a977a88b825f66959e91a7c8c54b720a50bc.tar.gz
Use ZEND_FETCH_FOREACH_* macros to iterate over HashTables instead of zend_hash_move_forward() and family.
Diffstat (limited to 'Zend/zend_objects.c')
-rw-r--r--Zend/zend_objects.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/Zend/zend_objects.c b/Zend/zend_objects.c
index 390d6fc026..2ffec7cd8e 100644
--- a/Zend/zend_objects.c
+++ b/Zend/zend_objects.c
@@ -148,7 +148,6 @@ ZEND_API void zend_objects_clone_members(zend_object *new_object, zend_object *o
}
}
if (old_object->properties) {
- HashPosition pos;
zval *prop, new_prop;
ulong num_key;
zend_string *key;
@@ -158,24 +157,19 @@ ZEND_API void zend_objects_clone_members(zend_object *new_object, zend_object *o
zend_hash_init(new_object->properties, 0, NULL, ZVAL_PTR_DTOR, 0);
}
- for (zend_hash_internal_pointer_reset_ex(old_object->properties, &pos);
- (prop = zend_hash_get_current_data_ex(old_object->properties, &pos)) != NULL;
- zend_hash_move_forward_ex(old_object->properties, &pos)) {
+ ZEND_HASH_FOREACH_KEY_VAL(old_object->properties, num_key, key, prop) {
if (Z_TYPE_P(prop) == IS_INDIRECT) {
ZVAL_INDIRECT(&new_prop, new_object->properties_table + (Z_INDIRECT_P(prop) - old_object->properties_table));
} else {
ZVAL_COPY_VALUE(&new_prop, prop);
zval_add_ref(&new_prop);
}
- switch (zend_hash_get_current_key_ex(old_object->properties, &key, &num_key, 0, &pos)) {
- case HASH_KEY_IS_STRING:
- zend_hash_update(new_object->properties, key, &new_prop);
- break;
- case HASH_KEY_IS_LONG:
- zend_hash_index_update(new_object->properties, num_key, &new_prop);
- break;
+ if (key) {
+ zend_hash_update(new_object->properties, key, &new_prop);
+ } else {
+ zend_hash_index_update(new_object->properties, num_key, &new_prop);
}
- }
+ } ZEND_HASH_FOREACH_END();
}
if (old_object->ce->clone) {