com php-src: more precise way to destroy iterator object: ext/dom/dom_iterators.c

From: Date: Fri, 19 Jun 2015 12:23:32 +0000
Subject: com php-src: more precise way to destroy iterator object: ext/dom/dom_iterators.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-87388@lists.php.net to get a copy of this message
Commit: 1e65b65dd683612925d99202c45ed8ed410edbde Author: Anatol Belski <ab@php.net> Fri, 19 Jun 2015 14:23:32 +0200 Parents: d81480693c26ebe6b7384563bc808472f9172ecd Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=1e65b65dd683612925d99202c45ed8ed410edbde Log: more precise way to destroy iterator object which also fixes the iterator_to_array test Changed paths: M ext/dom/dom_iterators.c Diff: diff --git a/ext/dom/dom_iterators.c b/ext/dom/dom_iterators.c index 7cef63b..a96b6bf 100644 --- a/ext/dom/dom_iterators.c +++ b/ext/dom/dom_iterators.c @@ -182,6 +182,7 @@ static void php_dom_iterator_move_forward(zend_object_iterator *iter) /* {{{ */ int previndex=0; HashTable *nodeht; zval *entry; + zend_bool do_curobj_undef = 1; php_dom_iterator *iterator = (php_dom_iterator *)iter; @@ -201,6 +202,7 @@ static void php_dom_iterator_move_forward(zend_object_iterator *iter) /* {{{ */ zval_ptr_dtor(&iterator->curobj); ZVAL_UNDEF(&iterator->curobj); ZVAL_COPY(&iterator->curobj, entry); + do_curobj_undef = 0; } } else { curnode = (xmlNodePtr)((php_libxml_node_ptr *)intern->ptr)->node; @@ -231,7 +233,7 @@ static void php_dom_iterator_move_forward(zend_object_iterator *iter) /* {{{ */ } } err: - if (IS_UNDEF != Z_TYPE(iterator->curobj)) { + if (do_curobj_undef) { zval_ptr_dtor(&iterator->curobj); ZVAL_UNDEF(&iterator->curobj); }

« previous php.cvs (#87388) next »