cellog Tue Jun 24 01:11:27 2008 UTC Modified files: (Branch: PHP_5_3) /php-src/ext/phar phar.phar phar_object.c /php-src/ext/phar/tests phar_buildfromiterator8.phpt phar_extract.phpt phar_extract2.phpt Log: fix several issues: 1) segfault in phar_buildfromdirectoryiterator8.phpt 2) tests failing because SKIPDOTS is default on 64 bit, not on 32 3) Marcus, you really need to add SKIPDOTS as a class constant, so we don't have to use 0x00001000 http://cvs.php.net/viewvc.cgi/php-src/ext/phar/phar.phar?r1=1.7.2.26&r2=1.7.2.27&diff_format=u Index: php-src/ext/phar/phar.phar http://cvs.php.net/viewvc.cgi/php-src/ext/phar/phar_object.c?r1=1.266.2.31&r2=1.266.2.32&diff_format=u Index: php-src/ext/phar/phar_object.c diff -u php-src/ext/phar/phar_object.c:1.266.2.31 php-src/ext/phar/phar_object.c:1.266.2.32 --- php-src/ext/phar/phar_object.c:1.266.2.31 Mon Jun 23 04:00:22 2008 +++ php-src/ext/phar/phar_object.c Tue Jun 24 01:11:27 2008 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: phar_object.c,v 1.266.2.31 2008/06/23 04:00:22 cellog Exp $ */ +/* $Id: phar_object.c,v 1.266.2.32 2008/06/24 01:11:27 cellog Exp $ */ #include "phar_internal.h" #include "func_interceptors.h" @@ -1134,7 +1134,7 @@ #else char *fname, *alias = NULL, *error, *arch = NULL, *entry = NULL, *save_fname; int fname_len, alias_len = 0, arch_len, entry_len, is_data; - long flags = 0, format = 0; + long flags = SPL_FILE_DIR_SKIPDOTS, format = 0; phar_archive_object *phar_obj; phar_archive_data *phar_data; zval *zobj = getThis(), arg1, arg2; @@ -1237,15 +1237,10 @@ INIT_PZVAL(&arg1); ZVAL_STRINGL(&arg1, fname, fname_len, 0); - if (ZEND_NUM_ARGS() > 1) { - INIT_PZVAL(&arg2); - ZVAL_LONG(&arg2, flags); - zend_call_method_with_2_params(&zobj, Z_OBJCE_P(zobj), - &spl_ce_RecursiveDirectoryIterator->constructor, "__construct", NULL, &arg1, &arg2); - } else { - zend_call_method_with_1_params(&zobj, Z_OBJCE_P(zobj), - &spl_ce_RecursiveDirectoryIterator->constructor, "__construct", NULL, &arg1); - } + INIT_PZVAL(&arg2); + ZVAL_LONG(&arg2, flags); + zend_call_method_with_2_params(&zobj, Z_OBJCE_P(zobj), + &spl_ce_RecursiveDirectoryIterator->constructor, "__construct", NULL, &arg1, &arg2); if (!phar_data->is_persistent) { phar_obj->arc.archive->is_data = is_data; @@ -1621,6 +1616,7 @@ data->internal_file->fp = NULL; data->internal_file->fp_type = PHAR_UFP; data->internal_file->offset_abs = data->internal_file->offset = php_stream_tell(p_obj->fp); + data->fp = NULL; contents_len = php_stream_copy_to_stream(fp, p_obj->fp, PHP_STREAM_COPY_ALL); data->internal_file->uncompressed_filesize = data->internal_file->compressed_filesize = php_stream_tell(p_obj->fp) - data->internal_file->offset; @@ -1681,9 +1677,11 @@ INIT_PZVAL(&arg); ZVAL_STRINGL(&arg, dir, dir_len, 0); + INIT_PZVAL(&arg2); + ZVAL_LONG(&arg2, SPL_FILE_DIR_SKIPDOTS); - zend_call_method_with_1_params(&iter, spl_ce_RecursiveDirectoryIterator, - &spl_ce_RecursiveDirectoryIterator->constructor, "__construct", NULL, &arg); + zend_call_method_with_2_params(&iter, spl_ce_RecursiveDirectoryIterator, + &spl_ce_RecursiveDirectoryIterator->constructor, "__construct", NULL, &arg, &arg2); if (EG(exception)) { zval_ptr_dtor(&iter); http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/phar_buildfromiterator8.phpt?r1=1.6&r2=1.6.2.1&diff_format=u Index: php-src/ext/phar/tests/phar_buildfromiterator8.phpt diff -u php-src/ext/phar/tests/phar_buildfromiterator8.phpt:1.6 php-src/ext/phar/tests/phar_buildfromiterator8.phpt:1.6.2.1 --- php-src/ext/phar/tests/phar_buildfromiterator8.phpt:1.6 Sat Apr 26 13:22:37 2008 +++ php-src/ext/phar/tests/phar_buildfromiterator8.phpt Tue Jun 24 01:11:27 2008 @@ -3,7 +3,6 @@ --SKIPIF-- <?php if (!extension_loaded("phar")) die("skip"); ?> --INI-- -phar.require_hash=0 phar.readonly=0 --FILE-- <?php http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/phar_extract.phpt?r1=1.7&r2=1.7.2.1&diff_format=u Index: php-src/ext/phar/tests/phar_extract.phpt diff -u php-src/ext/phar/tests/phar_extract.phpt:1.7 php-src/ext/phar/tests/phar_extract.phpt:1.7.2.1 --- php-src/ext/phar/tests/phar_extract.phpt:1.7 Thu May 8 02:58:44 2008 +++ php-src/ext/phar/tests/phar_extract.phpt Tue Jun 24 01:11:27 2008 @@ -19,7 +19,7 @@ $a->extractTo(dirname(__FILE__) . '/extract', 'mount'); $a->extractTo(dirname(__FILE__) . '/extract'); $out = array(); -foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator(dirname(__FILE__) . '/extract'), RecursiveIteratorIterator::CHILD_FIRST) as $p => $b) { +foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator(dirname(__FILE__) . '/extract', 0x00001000), RecursiveIteratorIterator::CHILD_FIRST) as $p => $b) { $out[] = $p; } sort($out); http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/phar_extract2.phpt?r1=1.1.2.3&r2=1.1.2.4&diff_format=u Index: php-src/ext/phar/tests/phar_extract2.phpt diff -u php-src/ext/phar/tests/phar_extract2.phpt:1.1.2.3 php-src/ext/phar/tests/phar_extract2.phpt:1.1.2.4 --- php-src/ext/phar/tests/phar_extract2.phpt:1.1.2.3 Thu May 15 16:09:01 2008 +++ php-src/ext/phar/tests/phar_extract2.phpt Tue Jun 24 01:11:27 2008 @@ -23,7 +23,7 @@ $phar->extractTo(dirname(__FILE__) . '/extract'); $out = array(); -foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator(dirname(__FILE__) . '/extract'), RecursiveIteratorIterator::CHILD_FIRST) as $path => $file) { +foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator(dirname(__FILE__) . '/extract', 0x00001000), RecursiveIteratorIterator::CHILD_FIRST) as $path => $file) { $extracted[] = $path; }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php