]> granicus.if.org Git - php/commitdiff
Fixed spl_dual_it_get_method
authorXinchen Hui <laruence@gmail.com>
Sun, 16 Mar 2014 15:02:14 +0000 (23:02 +0800)
committerXinchen Hui <laruence@gmail.com>
Sun, 16 Mar 2014 15:02:14 +0000 (23:02 +0800)
ext/spl/spl_iterators.c

index 622ff726dbcb18e65df6cf623c68b80e514df4cd..79a99d409784f3e79cc1963425d731eb1f2564e5 100644 (file)
@@ -1286,13 +1286,11 @@ static union _zend_function *spl_dual_it_get_method(zval *object_ptr, zend_strin
        if (!function_handler && intern->inner.ce) {
                if ((function_handler = zend_hash_find_ptr(&intern->inner.ce->function_table, method)) == NULL) {
                        if (Z_OBJ_HT(intern->inner.zobject)->get_method) {
-                               //!!! maybe we really need a zval ** here?
-                               //*object_ptr = &intern->inner.zobject?
-                               object_ptr = &intern->inner.zobject;
+                               ZVAL_COPY_VALUE(object_ptr, &intern->inner.zobject);
                                function_handler = Z_OBJ_HT_P(object_ptr)->get_method(object_ptr, method, key TSRMLS_CC);
                        }
                } else {
-                       object_ptr = &intern->inner.zobject;
+                       ZVAL_COPY_VALUE(object_ptr, &intern->inner.zobject);
                }
        }
        return function_handler;