cellog Sat Oct 11 21:23:13 2008 UTC Modified files: /php-src/ext/phar zip.c Log: MFB: cosmetics/maintainability: reduce code redundancy on error conditions http://cvs.php.net/viewvc.cgi/php-src/ext/phar/zip.c?r1=1.56&r2=1.57&diff_format=u Index: php-src/ext/phar/zip.c diff -u php-src/ext/phar/zip.c:1.56 php-src/ext/phar/zip.c:1.57 --- php-src/ext/phar/zip.c:1.56 Sat Oct 11 21:02:53 2008 +++ php-src/ext/phar/zip.c Sat Oct 11 21:23:13 2008 @@ -1170,6 +1170,7 @@ pass.filefp = php_stream_fopen_tmpfile(); if (!pass.filefp) { +fperror: if (closeoldfile) { php_stream_close(oldfile); } @@ -1182,13 +1183,7 @@ pass.centralfp = php_stream_fopen_tmpfile(); if (!pass.centralfp) { - if (closeoldfile) { - php_stream_close(oldfile); - } - if (error) { - spprintf(error, 4096, "phar zip flush of \"%s\" failed: unable to open temporary file", phar->fname); - } - return EOF; + goto fperror; } pass.free_fp = pass.free_ufp = 1; @@ -1199,15 +1194,17 @@ zend_hash_apply_with_argument(&phar->manifest, phar_zip_changed_apply, (void *) &pass TSRMLS_CC); if (temperr) { - php_stream_close(pass.filefp); - php_stream_close(pass.centralfp); - if (closeoldfile) { - php_stream_close(oldfile); - } if (error) { spprintf(error, 4096, "phar zip flush of \"%s\" failed: %s", phar->fname, temperr); } efree(temperr); +temperror: + php_stream_close(pass.centralfp); +nocentralerror: + php_stream_close(pass.filefp); + if (closeoldfile) { + php_stream_close(oldfile); + } return EOF; } @@ -1217,15 +1214,10 @@ php_stream_seek(pass.centralfp, 0, SEEK_SET); if (eocd.cdir_size != php_stream_copy_to_stream(pass.centralfp, pass.filefp, PHP_STREAM_COPY_ALL)) { - php_stream_close(pass.filefp); - php_stream_close(pass.centralfp); if (error) { spprintf(error, 4096, "phar zip flush of \"%s\" failed: unable to write central-directory", phar->fname); } - if (closeoldfile) { - php_stream_close(oldfile); - } - return EOF; + goto temperror; } php_stream_close(pass.centralfp); @@ -1238,41 +1230,27 @@ eocd.comment_len = PHAR_SET_16(main_metadata_str.len); if (sizeof(eocd) != php_stream_write(pass.filefp, (char *)&eocd, sizeof(eocd))) { - php_stream_close(pass.filefp); if (error) { spprintf(error, 4096, "phar zip flush of \"%s\" failed: unable to write end of central-directory", phar->fname); } - if (closeoldfile) { - php_stream_close(oldfile); - } - smart_str_free(&main_metadata_str); - return EOF; + goto nocentralerror; } if (main_metadata_str.len != php_stream_write(pass.filefp, main_metadata_str.c, main_metadata_str.len)) { - php_stream_close(pass.filefp); if (error) { spprintf(error, 4096, "phar zip flush of \"%s\" failed: unable to write metadata to zip comment", phar->fname); } - if (closeoldfile) { - php_stream_close(oldfile); - } - smart_str_free(&main_metadata_str); - return EOF; + goto nocentralerror; } smart_str_free(&main_metadata_str); } else { if (sizeof(eocd) != php_stream_write(pass.filefp, (char *)&eocd, sizeof(eocd))) { - php_stream_close(pass.filefp); if (error) { spprintf(error, 4096, "phar zip flush of \"%s\" failed: unable to write end of central-directory", phar->fname); } - if (closeoldfile) { - php_stream_close(oldfile); - } - return EOF; + goto nocentralerror; } }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php