From: Marcus Boerger Date: Thu, 22 Dec 2005 00:35:37 +0000 (+0000) Subject: - Fix memleak X-Git-Tag: php-5.1.2RC1~5 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=53e37ac843dcac5b5424f92a2e7528d6ff4f5c31;p=php - Fix memleak --- diff --git a/ext/spl/spl_iterators.c b/ext/spl/spl_iterators.c index da9fef123a..9923e1b66e 100755 --- a/ext/spl/spl_iterators.c +++ b/ext/spl/spl_iterators.c @@ -384,6 +384,9 @@ SPL_METHOD(RecursiveIteratorIterator, __construct) iterator = NULL; } if (!iterator || !instanceof_function(Z_OBJCE_P(iterator), spl_ce_RecursiveIterator TSRMLS_CC)) { + if (iterator && !inc_refcount) { + zval_ptr_dtor(&iterator); + } php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC); zend_throw_exception(spl_ce_InvalidArgumentException, "An instance of RecursiveIterator or IteratorAggregate creating it is required", 0 TSRMLS_CC); return;