From 862afd80b36b64262dcce03f15886d81b88080ae Mon Sep 17 00:00:00 2001 From: Robin McCorkell Date: Wed, 16 Sep 2015 10:47:46 +0100 Subject: [PATCH] Restore loadApp() autoload registration Also changes the autoloader validRoots into a hashmap to try and reduce duplicate entries --- lib/autoloader.php | 9 ++++++--- lib/private/app.php | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/autoloader.php b/lib/autoloader.php index 41a040b3f5..8361f31b03 100644 --- a/lib/autoloader.php +++ b/lib/autoloader.php @@ -51,7 +51,9 @@ class Autoloader { * @param string[] $validRoots */ public function __construct(array $validRoots) { - $this->validRoots = $validRoots; + foreach ($validRoots as $root) { + $this->validRoots[$root] = true; + } } /** @@ -60,7 +62,8 @@ class Autoloader { * @param string $root */ public function addValidRoot($root) { - $this->validRoots[] = stream_resolve_include_path($root); + $root = stream_resolve_include_path($root); + $this->validRoots[$root] = true; } /** @@ -126,7 +129,7 @@ class Autoloader { } protected function isValidPath($fullPath) { - foreach ($this->validRoots as $root) { + foreach ($this->validRoots as $root => $true) { if (substr($fullPath, 0, strlen($root) + 1) === $root . '/') { return true; } diff --git a/lib/private/app.php b/lib/private/app.php index e42fba525e..368b3220b4 100644 --- a/lib/private/app.php +++ b/lib/private/app.php @@ -131,6 +131,7 @@ class OC_App { */ public static function loadApp($app, $checkUpgrade = true) { self::$loadedApps[] = $app; + \OC::$loader->addValidRoot(self::getAppPath($app)); // in case someone calls loadApp() directly if (is_file(self::getAppPath($app) . '/appinfo/app.php')) { \OC::$server->getEventLogger()->start('load_app_' . $app, 'Load app: ' . $app); if ($checkUpgrade and self::shouldUpgrade($app)) {