From 3451c5a182c8395d2a252973335119e5182bbb9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Mon, 10 Jul 2023 01:20:53 +0200 Subject: [PATCH] extensionUtils: Slightly optimize current extension lookup When looking for a directory name that matches the extension UUID, we can just as well use GLib's dirname()/basename() functions instead of wrapping the path in a GFile. We also know that the original path corresponds to a regular file and not a directory, so rearrange the loop to avoid a lookup that is guaranteed to fail. Part-of: --- js/misc/extensionUtils.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/js/misc/extensionUtils.js b/js/misc/extensionUtils.js index c60c4520c..f04d2a06b 100644 --- a/js/misc/extensionUtils.js +++ b/js/misc/extensionUtils.js @@ -98,17 +98,18 @@ function getCurrentExtension() { // // We don't have to care about the exact composition, all we need // is a string that can be traversed as path and contains the UUID - const path = extensionLine.slice(extensionLine.indexOf(basePath)); - let file = Gio.File.new_for_path(path); + let path = extensionLine.slice(extensionLine.indexOf(basePath)); // Walk up the directory tree, looking for an extension with // the same UUID as a directory name. - while (file != null) { - let extension = extensionManager.lookup(file.get_basename()); + do { + path = GLib.path_get_dirname(path); + + const dirName = GLib.path_get_basename(path); + const extension = extensionManager.lookup(dirName); if (extension !== undefined) return extension; - file = file.get_parent(); - } + } while (path !== '/'); return null; }