From 2805a4d1f8dc3e718ba7822040208e9c608358e0 Mon Sep 17 00:00:00 2001 From: Michael Wallner Date: Fri, 12 Sep 2014 07:25:24 +0200 Subject: [PATCH] avoid adding a ref to the object of the iterator actually living inside that object --- src/php_pqres.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/php_pqres.c b/src/php_pqres.c index 3b5d6bf..67dac34 100644 --- a/src/php_pqres.c +++ b/src/php_pqres.c @@ -38,7 +38,7 @@ static zend_object_iterator *php_pqres_iterator_init(zend_class_entry *ce, zval iter = ecalloc(1, sizeof(*iter)); iter->zi.funcs = &php_pqres_iterator_funcs; iter->zi.data = object; - Z_ADDREF_P(object); + /* do not addref, because the iterator lives inside this object anyway */ zfetch_type = prop = zend_read_property(ce, object, ZEND_STRL("fetchType"), 0 TSRMLS_CC); if (Z_TYPE_P(zfetch_type) != IS_LONG) { @@ -66,7 +66,6 @@ static void php_pqres_iterator_dtor(zend_object_iterator *i TSRMLS_DC) zval_ptr_dtor(&iter->current_val); iter->current_val = NULL; } - zval_ptr_dtor((zval **) &iter->zi.data); efree(iter); }