From f88021dbbc3b53e4a1460a79185835770514722e Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind@owncloud.com>
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;
-- 
GitLab