Accept `float`s in FileUtil::checkMemoryLimit()
authorTim Düsterhus <duesterhus@woltlab.com>
Thu, 3 Aug 2023 12:03:02 +0000 (14:03 +0200)
committerTim Düsterhus <duesterhus@woltlab.com>
Thu, 3 Aug 2023 12:03:02 +0000 (14:03 +0200)
While a decimal amount of bytes is not something that exists, it's a common
pattern to approximate the required memory usage of an image operation with the
factor `2.1`, possibly resulting in decimal places. PHP 8.1 emits a warning if
an implicit cast from non-integer float to int happens.

As the input is only used within an inequality expression and not further
processed it is safe to accept arbitrary floats and preferable to slapping
explicit casts onto everything.

wcfsetup/install/files/lib/util/FileUtil.class.php

index 5e7293d66a6c57401dbdc6d8ac4273330d982418..3844c670d533e5ce75012bdf13e2017de2911203 100644 (file)
@@ -547,7 +547,7 @@ final class FileUtil
     /**
      * Returns true if the given amount of memory is available.
      */
-    public static function checkMemoryLimit(int $neededMemory): bool
+    public static function checkMemoryLimit(int|float $neededMemory): bool
     {
         return self::getMemoryLimit() == -1 || self::getMemoryLimit() > (\memory_get_usage() + $neededMemory);
     }