Remove gzopen64() workaround
authorTim Düsterhus <duesterhus@woltlab.com>
Wed, 7 Jul 2021 11:56:29 +0000 (13:56 +0200)
committerTim Düsterhus <duesterhus@woltlab.com>
Wed, 7 Jul 2021 11:56:29 +0000 (13:56 +0200)
PHP bug #53829 (https://bugs.php.net/bug.php?id=53829) is fixed. This should no
longer be required.

wcfsetup/install.php
wcfsetup/install/files/lib/system/io/GZipFile.class.php

index 6a0303c3cc8ae9332d1845410a2c52a046b0adf8..7bd1ad84294ac082cd8e8681b4f65d896c0c5641 100644 (file)
@@ -1170,11 +1170,9 @@ class File {
  */
 class GZipFile extends File {
        /**
-        * checks if gz*64 functions are available instead of gz*
-        * https://bugs.php.net/bug.php?id=53829
-        * @var bool
+        * @deprecated 5.5 The bug this worked around is fixed.
         */
-       protected static $gzopen64 = null;
+       protected static $gzopen64 = false;
        
        /** @noinspection PhpMissingParentConstructorInspection */
        /**
@@ -1185,13 +1183,8 @@ class GZipFile extends File {
         * @throws      SystemException
         */
        public function __construct($filename, $mode = 'wb') {
-               if (self::$gzopen64 === null) {
-                       self::$gzopen64 = function_exists('gzopen64');
-               }
-               
                $this->filename = $filename;
-               /** @noinspection PhpUndefinedFunctionInspection */
-               $this->resource = (self::$gzopen64 ? gzopen64($filename, $mode) : gzopen($filename, $mode));
+               $this->resource = gzopen($filename, $mode);
                if ($this->resource === false) {
                        throw new SystemException('Can not open file ' . $filename);
                }
@@ -1206,11 +1199,7 @@ class GZipFile extends File {
         * @throws      SystemException
         */
        public function __call($function, $arguments) {
-               if (self::$gzopen64 && function_exists('gz' . $function . '64')) {
-                       array_unshift($arguments, $this->resource);
-                       return call_user_func_array('gz' . $function . '64', $arguments);
-               }
-               else if (function_exists('gz' . $function)) {
+               if (function_exists('gz' . $function)) {
                        array_unshift($arguments, $this->resource);
                        return call_user_func_array('gz' . $function, $arguments);
                }
index 8932411238bb9978a2cf285e1b5f50fb300a7896..5885590a146aa56b5f2093478b9f2a4b67b1148b 100644 (file)
@@ -18,11 +18,9 @@ use wcf\system\exception\SystemException;
 class GZipFile extends File
 {
     /**
-     * checks if gz*64 functions are available instead of gz*
-     * https://bugs.php.net/bug.php?id=53829
-     * @var bool
+     * @deprecated 5.5 The bug this worked around is fixed.
      */
-    protected static $gzopen64 = null;
+    protected static $gzopen64 = false;
 
     /** @noinspection PhpMissingParentConstructorInspection */
 
@@ -35,13 +33,8 @@ class GZipFile extends File
      */
     public function __construct($filename, $mode = 'wb')
     {
-        if (self::$gzopen64 === null) {
-            self::$gzopen64 = \function_exists('gzopen64');
-        }
-
         $this->filename = $filename;
-        /** @noinspection PhpUndefinedFunctionInspection */
-        $this->resource = (self::$gzopen64 ? gzopen64($filename, $mode) : \gzopen($filename, $mode));
+        $this->resource = \gzopen($filename, $mode);
         if ($this->resource === false) {
             throw new SystemException('Can not open file ' . $filename);
         }
@@ -57,11 +50,7 @@ class GZipFile extends File
      */
     public function __call($function, $arguments)
     {
-        if (self::$gzopen64 && \function_exists('gz' . $function . '64')) {
-            \array_unshift($arguments, $this->resource);
-
-            return \call_user_func_array('gz' . $function . '64', $arguments);
-        } elseif (\function_exists('gz' . $function)) {
+        if (\function_exists('gz' . $function)) {
             \array_unshift($arguments, $this->resource);
 
             return \call_user_func_array('gz' . $function, $arguments);