summaryrefslogtreecommitdiff
path: root/Zend/zend_interfaces.c
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2003-11-18 00:18:48 +0000
committerMarcus Boerger <helly@php.net>2003-11-18 00:18:48 +0000
commitc978cc2ae8dcf5c13cf9fcafb31a45d8ee54dde9 (patch)
tree448dd079471410aeb55107aea9b4683195e951a8 /Zend/zend_interfaces.c
parentee997ddbfa7bfa5c12ad953f5a39ea13d3073849 (diff)
downloadphp-git-c978cc2ae8dcf5c13cf9fcafb31a45d8ee54dde9.tar.gz
Use correct order
Diffstat (limited to 'Zend/zend_interfaces.c')
-rwxr-xr-xZend/zend_interfaces.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c
index 8fcf9dd9a9..77a8deb6cd 100755
--- a/Zend/zend_interfaces.c
+++ b/Zend/zend_interfaces.c
@@ -263,6 +263,7 @@ static zend_object_iterator *zend_user_get_iterator(zend_class_entry *ce, zval *
static zend_object_iterator *zend_user_get_new_iterator(zend_class_entry *ce, zval *object TSRMLS_DC)
{
zval *iterator = zend_user_new_iterator(ce, object TSRMLS_CC);
+ zend_object_iterator *new_iterator;
zend_class_entry *ce_it = Z_TYPE_P(iterator) == IS_OBJECT ? Z_OBJCE_P(iterator) : NULL;
@@ -271,8 +272,9 @@ static zend_object_iterator *zend_user_get_new_iterator(zend_class_entry *ce, zv
zval_ptr_dtor(&iterator);
return NULL;
}
- iterator->refcount--; /* from return */
- return ce_it->get_iterator(ce_it, iterator TSRMLS_CC);
+ new_iterator = ce_it->get_iterator(ce_it, iterator TSRMLS_CC);
+ zval_ptr_dtor(&iterator);
+ return new_iterator;
}
/* }}} */