Skip to content
Snippets Groups Projects
Commit 598a090d authored by Bart Visscher's avatar Bart Visscher
Browse files

Add cache for getStorage and getInternalPath functions.

These are called for almost every file operation.
parent e728635c
No related branches found
No related tags found
No related merge requests found
......@@ -23,6 +23,8 @@
class OC_FilesystemView {
private $fakeRoot='';
private $internal_path_cache=array();
private $storage_cache=array();
public function __construct($root){
$this->fakeRoot=$root;
......@@ -67,7 +69,10 @@ class OC_FilesystemView {
* @return bool
*/
public function getInternalPath($path){
return OC_Filesystem::getInternalPath($this->getAbsolutePath($path));
if (!isset($this->internal_path_cache[$path])) {
$this->internal_path_cache[$path] = OC_Filesystem::getInternalPath($this->getAbsolutePath($path));
}
return $this->internal_path_cache[$path];
}
/**
* get the storage object for a path
......@@ -75,7 +80,10 @@ class OC_FilesystemView {
* @return OC_Filestorage
*/
public function getStorage($path){
return OC_Filesystem::getStorage($this->getAbsolutePath($path));
if (!isset($this->storage_cache[$path])) {
$this->storage_cache[$path] = OC_Filesystem::getStorage($this->getAbsolutePath($path));
}
return $this->storage_cache[$path];
}
/**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment