From f88021dbbc3b53e4a1460a79185835770514722e Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 24 Sep 2014 15:44:56 +0200 Subject: [PATCH] Don't keep the full info of all children in memory --- lib/private/files/cache/scanner.php | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/lib/private/files/cache/scanner.php b/lib/private/files/cache/scanner.php index dfba2d920a..444207518b 100644 --- a/lib/private/files/cache/scanner.php +++ b/lib/private/files/cache/scanner.php @@ -224,6 +224,17 @@ class Scanner extends BasicEmitter { return $data; } + protected function getExistingChildren($path) { + $existingChildren = array(); + if ($this->cache->inCache($path)) { + $children = $this->cache->getFolderContents($path); + foreach ($children as $child) { + $existingChildren[] = $child['name']; + } + } + return $existingChildren; + } + /** * scan all the files and folders in a folder * @@ -239,13 +250,7 @@ class Scanner extends BasicEmitter { $this->emit('\OC\Files\Cache\Scanner', 'scanFolder', array($path, $this->storageId)); $size = 0; $childQueue = array(); - $existingChildren = array(); - if ($this->cache->inCache($path)) { - $children = $this->cache->getFolderContents($path); - foreach ($children as $child) { - $existingChildren[] = $child['name']; - } - } + $existingChildren = $this->getExistingChildren($path); $newChildren = array(); if ($this->storage->is_dir($path) && ($dh = $this->storage->opendir($path))) { $exceptionOccurred = false;