Skip already loaded apps in loadApps
Otherwise you might end up calling a lot of functions unneeded. And while the individual calls are cheap if you multiply them by 20k they still get somewhat expensive. Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
parent
93211e7ded
commit
ef5cee12d1
|
@ -94,7 +94,7 @@ class OC_App {
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public static function isAppLoaded(string $app): bool {
|
public static function isAppLoaded(string $app): bool {
|
||||||
return in_array($app, self::$loadedApps, true);
|
return isset(self::$loadedApps[$app]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -127,7 +127,7 @@ class OC_App {
|
||||||
// prevent app.php from printing output
|
// prevent app.php from printing output
|
||||||
ob_start();
|
ob_start();
|
||||||
foreach ($apps as $app) {
|
foreach ($apps as $app) {
|
||||||
if (($types === [] or self::isType($app, $types)) && !in_array($app, self::$loadedApps)) {
|
if (!isset(self::$loadedApps[$app]) && ($types === [] || self::isType($app, $types))) {
|
||||||
self::loadApp($app);
|
self::loadApp($app);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -143,7 +143,7 @@ class OC_App {
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public static function loadApp(string $app) {
|
public static function loadApp(string $app) {
|
||||||
self::$loadedApps[] = $app;
|
self::$loadedApps[$app] = true;
|
||||||
$appPath = self::getAppPath($app);
|
$appPath = self::getAppPath($app);
|
||||||
if ($appPath === false) {
|
if ($appPath === false) {
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue