Don't keep the full info of all children in memory

remotes/origin/fix-10825
Robin Appelman 11 years ago
parent 3da6b3b533
commit f88021dbbc
  1. 19
      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;

Loading…
Cancel
Save