From aab17ca79a5f47f1643900a50ef62fde3ae8ff93 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Fri, 26 Feb 2021 12:58:09 +0200 Subject: [PATCH] Reduce memory use in Flex --- system/src/Grav/Framework/Flex/Storage/FileStorage.php | 1 + system/src/Grav/Framework/Flex/Storage/FolderStorage.php | 3 +++ system/src/Grav/Framework/Flex/Storage/SimpleStorage.php | 5 +++++ 3 files changed, 9 insertions(+) diff --git a/system/src/Grav/Framework/Flex/Storage/FileStorage.php b/system/src/Grav/Framework/Flex/Storage/FileStorage.php index 2dc0757a9..b8e2169d3 100644 --- a/system/src/Grav/Framework/Flex/Storage/FileStorage.php +++ b/system/src/Grav/Framework/Flex/Storage/FileStorage.php @@ -83,6 +83,7 @@ class FileStorage extends FolderStorage $path = $this->getPathFromKey($src); $file = $this->getFile($path); $file->delete(); + $file->free(); return true; } diff --git a/system/src/Grav/Framework/Flex/Storage/FolderStorage.php b/system/src/Grav/Framework/Flex/Storage/FolderStorage.php index acdab7816..27e60ce3c 100644 --- a/system/src/Grav/Framework/Flex/Storage/FolderStorage.php +++ b/system/src/Grav/Framework/Flex/Storage/FolderStorage.php @@ -381,6 +381,7 @@ class FolderStorage extends AbstractFilesystemStorage if (isset($data[0])) { throw new RuntimeException('Broken object file'); } + unset($file); } catch (RuntimeException $e) { $data = ['__ERROR' => $e->getMessage()]; } @@ -425,6 +426,7 @@ class FolderStorage extends AbstractFilesystemStorage $file = $this->getFile($path); $file->save($row); + $file->free(); /** @var UniformResourceLocator $locator */ $locator = Grav::instance()['locator']; @@ -434,6 +436,7 @@ class FolderStorage extends AbstractFilesystemStorage } catch (RuntimeException $e) { throw new RuntimeException(sprintf('Flex saveFile(%s): %s', $path ?? $key, $e->getMessage())); } + unset($file); $row['__META'] = $this->getObjectMeta($key, true); diff --git a/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php b/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php index df889ce6d..4475a27ad 100644 --- a/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php +++ b/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php @@ -418,6 +418,7 @@ class SimpleStorage extends AbstractFilesystemStorage } catch (RuntimeException $e) { throw new RuntimeException(sprintf('Flex save(): %s', $e->getMessage())); } + unset($file); } /** @@ -453,6 +454,10 @@ class SimpleStorage extends AbstractFilesystemStorage $data = new Data($content); $content = $data->get($this->prefix); } + + $file->free(); + unset($file); + $this->data = $content; $list = [];