]> granicus.if.org Git - php/commitdiff
fix remaining broken tests broken by the addition of phar->fp closing
authorGreg Beaver <cellog@php.net>
Tue, 12 Feb 2008 05:28:06 +0000 (05:28 +0000)
committerGreg Beaver <cellog@php.net>
Tue, 12 Feb 2008 05:28:06 +0000 (05:28 +0000)
ext/phar/phar.c

index c255bdb3b4253998fa24e86ce4a9b9ff8833a289..8c6a5a1a047680b4d4dfea5347bae5e591f5c771 100644 (file)
@@ -214,9 +214,11 @@ int phar_archive_delref(phar_archive_data *phar TSRMLS_DC) /* {{{ */
                }
                return 1;
        } else if (!phar->refcount) {
-               if (phar->fp) {
+               if (phar->fp && !(phar->flags & PHAR_FILE_COMPRESSION_MASK)) {
                        /* close open file handle - allows removal or rename of
-                       the file on windows, which has greedy locking */
+                       the file on windows, which has greedy locking
+                       only close if the archive was not already compressed.  If it
+                       was compressed, then the fp does not refer to the original file */
                        php_stream_close(phar->fp);
                        phar->fp = NULL;
                }