lualoader config: don't call loader.getenv() as much

We don't actually need to fetch loader_conf_files as much as we do; we've
already fetched it once at the beginning, we only really need to fetch it
again after each file we've processed. If it changes, then we can stash that
off into our local prefiles.

While here, drop a note about the recursion so that I stop trying to
change it. It may very well make redundant some of the work we're doing, but
that's OK.

MFC after:	3 days
This commit is contained in:
Kyle Evans 2020-04-28 01:39:34 +00:00
parent b8040914bf
commit ecacf5ff1e

View File

@ -343,13 +343,12 @@ end
local function readConfFiles(loaded_files) local function readConfFiles(loaded_files)
local f = loader.getenv("loader_conf_files") local f = loader.getenv("loader_conf_files")
if f ~= nil then if f ~= nil then
local prefiles = f
for name in f:gmatch("([%w%p]+)%s*") do for name in f:gmatch("([%w%p]+)%s*") do
if loaded_files[name] ~= nil then if loaded_files[name] ~= nil then
goto continue goto continue
end end
local prefiles = loader.getenv("loader_conf_files")
print("Loading " .. name) print("Loading " .. name)
-- These may or may not exist, and that's ok. Do a -- These may or may not exist, and that's ok. Do a
-- silent parse so that we complain on parse errors but -- silent parse so that we complain on parse errors but
@ -361,7 +360,12 @@ local function readConfFiles(loaded_files)
loaded_files[name] = true loaded_files[name] = true
local newfiles = loader.getenv("loader_conf_files") local newfiles = loader.getenv("loader_conf_files")
if prefiles ~= newfiles then if prefiles ~= newfiles then
-- Recurse; process the new files immediately.
-- If we come back and it turns out we've
-- already loaded the rest of what was in the
-- original loader_conf_files, no big deal.
readConfFiles(loaded_files) readConfFiles(loaded_files)
prefiles = newfiles
end end
::continue:: ::continue::
end end