summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/core-uti.lua
diff options
context:
space:
mode:
authorContext Git Mirror Bot <phg42.2a@gmail.com>2016-08-09 22:36:40 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2016-08-09 22:36:40 +0200
commitbfc7bd2349855039534e8854a97c47864b1eba09 (patch)
tree18be9cdf7e40b5afcc76adc44a6d4d4e9a233799 /tex/context/base/mkiv/core-uti.lua
parent0de4e16399b66afacfc8b8b9c8ae870792e634a4 (diff)
downloadcontext-bfc7bd2349855039534e8854a97c47864b1eba09.tar.gz
2016-08-09 22:01:00
Diffstat (limited to 'tex/context/base/mkiv/core-uti.lua')
-rw-r--r--tex/context/base/mkiv/core-uti.lua14
1 files changed, 10 insertions, 4 deletions
diff --git a/tex/context/base/mkiv/core-uti.lua b/tex/context/base/mkiv/core-uti.lua
index 1ddfffaf2..54bcba08d 100644
--- a/tex/context/base/mkiv/core-uti.lua
+++ b/tex/context/base/mkiv/core-uti.lua
@@ -283,21 +283,27 @@ function job.load(filename)
local utilitydata = load(filename)
if utilitydata then
local jobpacker = utilitydata.job.packed
- for l=1,#savelist do
- local list = savelist[l]
+ local handlers = { }
+ for i=1,#savelist do
+ local list = savelist[i]
local target = list[1]
local initializer = list[3]
local result = accesstable(target,utilitydata)
- local done = packers.unpack(result,jobpacker,true)
+ local done = packers.unpack(result,jobpacker,true)
if done then
migratetable(target,mark(result))
if type(initializer) == "function" then
- initializer(result)
+ handlers[#handlers+1] = { initializer, result }
end
else
report_passes("pack version mismatch")
end
end
+ -- so we have all tables available (unpacked)
+ for i=1,#handlers do
+ local handler = handlers[i]
+ handler[1](handler[2])
+ end
end
statistics.stoptiming(_load_)
end