Commit:    14af1fe6923c65a91cd77eab5a8d4326f854391d
Author:    Dmitry Stogov <dmi...@zend.com>         Thu, 22 Mar 2012 14:38:38 
+0400
Parents:   523396cb28a0cb87ced9ec1179ef4f119d28ec80
Branches:  PHP-5.3 df129ae7ea983bab9947c97f15244870a748d729 
752fec88ef5ce15c750776d008ae843ee1ba761e PHP-5.4

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=14af1fe6923c65a91cd77eab5a8d4326f854391d

Log:
Fixed reference counting

Changed paths:
  M  ext/spl/spl_directory.c


Diff:
14af1fe6923c65a91cd77eab5a8d4326f854391d
diff --git a/ext/spl/spl_directory.c b/ext/spl/spl_directory.c
index fb19823..9d454c9 100755
--- a/ext/spl/spl_directory.c
+++ b/ext/spl/spl_directory.c
@@ -1644,8 +1644,8 @@ zend_object_iterator 
*spl_filesystem_dir_get_iterator(zend_class_entry *ce, zval
                /* ->current must be initialized; rewind doesn't set it and 
valid
                 * doesn't check whether it's set */
                iterator->current = object;
+               Z_SET_REFCOUNT_P(object, Z_REFCOUNT_P(object) + 2);
        }
-       zval_add_ref(&object);
        
        return (zend_object_iterator*)iterator;
 }
@@ -1847,8 +1847,8 @@ zend_object_iterator 
*spl_filesystem_tree_get_iterator(zend_class_entry *ce, zva
        if (iterator->intern.data == NULL) {
                iterator->intern.data = object;
                iterator->intern.funcs = &spl_filesystem_tree_it_funcs;
+               zval_add_ref(&object);
        }
-       zval_add_ref(&object);
        
        return (zend_object_iterator*)iterator;
 }


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to