@@ -1510,7 +1510,7 @@ SPL_METHOD(RecursiveDirectoryIterator, hasChildren)
1510
1510
Returns an iterator for the current entry if it is a directory */
1511
1511
SPL_METHOD (RecursiveDirectoryIterator , getChildren )
1512
1512
{
1513
- zval zpath , zflags ;
1513
+ zval * zpath , * zflags ;
1514
1514
spl_filesystem_object * intern = (spl_filesystem_object * )zend_object_store_get_object (getThis () TSRMLS_CC );
1515
1515
spl_filesystem_object * subdir ;
1516
1516
char slash = SPL_HAS_FLAG (intern -> flags , SPL_FILE_DIR_UNIXPATHS ) ? '/' : DEFAULT_SLASH ;
@@ -1524,11 +1524,13 @@ SPL_METHOD(RecursiveDirectoryIterator, getChildren)
1524
1524
if (SPL_HAS_FLAG (intern -> flags , SPL_FILE_DIR_CURRENT_AS_PATHNAME )) {
1525
1525
RETURN_STRINGL (intern -> file_name , intern -> file_name_len , 1 );
1526
1526
} else {
1527
- INIT_PZVAL (& zflags );
1528
- INIT_PZVAL (& zpath );
1529
- ZVAL_LONG (& zflags , intern -> flags );
1530
- ZVAL_STRINGL (& zpath , intern -> file_name , intern -> file_name_len , 0 );
1531
- spl_instantiate_arg_ex2 (Z_OBJCE_P (getThis ()), & return_value , 0 , & zpath , & zflags TSRMLS_CC );
1527
+ MAKE_STD_ZVAL (zflags );
1528
+ MAKE_STD_ZVAL (zpath );
1529
+ ZVAL_LONG (zflags , intern -> flags );
1530
+ ZVAL_STRINGL (zpath , intern -> file_name , intern -> file_name_len , 1 );
1531
+ spl_instantiate_arg_ex2 (Z_OBJCE_P (getThis ()), & return_value , 0 , zpath , zflags TSRMLS_CC );
1532
+ zval_ptr_dtor (& zpath );
1533
+ zval_ptr_dtor (& zflags );
1532
1534
1533
1535
subdir = (spl_filesystem_object * )zend_object_store_get_object (return_value TSRMLS_CC );
1534
1536
if (subdir ) {
0 commit comments