diff options
author | Dmitry Stogov <dmitry@zend.com> | 2015-04-28 19:11:45 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2015-04-28 19:11:45 +0300 |
commit | 388c2cbdbc5a4d24a2ff52402212117348c085b4 (patch) | |
tree | d582999a8d0c89277072ed06a46424bc4829529e /Zend/zend_objects.c | |
parent | 612de5214ff0b1db89516fc970984a350b065b2b (diff) | |
download | php-git-388c2cbdbc5a4d24a2ff52402212117348c085b4.tar.gz |
Micro optimizations
Diffstat (limited to 'Zend/zend_objects.c')
-rw-r--r-- | Zend/zend_objects.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/Zend/zend_objects.c b/Zend/zend_objects.c index 2feff81ea4..2826c322a9 100644 --- a/Zend/zend_objects.c +++ b/Zend/zend_objects.c @@ -151,14 +151,18 @@ ZEND_API zend_object *zend_objects_new(zend_class_entry *ce) ZEND_API void zend_objects_clone_members(zend_object *new_object, zend_object *old_object) { - int i; - if (old_object->ce->default_properties_count) { - for (i = 0; i < old_object->ce->default_properties_count; i++) { - zval_ptr_dtor(&new_object->properties_table[i]); - ZVAL_COPY_VALUE(&new_object->properties_table[i], &old_object->properties_table[i]); - zval_add_ref(&new_object->properties_table[i]); - } + zval *src = old_object->properties_table; + zval *dst = new_object->properties_table; + zval *end = src + old_object->ce->default_properties_count; + + do { + i_zval_ptr_dtor(dst ZEND_FILE_LINE_CC); + ZVAL_COPY_VALUE(dst, src); + zval_add_ref(dst); + src++; + dst++; + } while (src != end); } if (old_object->properties) { zval *prop, new_prop; |