summaryrefslogtreecommitdiff
path: root/tex/context/base/node-res.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/node-res.lua')
-rw-r--r--tex/context/base/node-res.lua10
1 files changed, 6 insertions, 4 deletions
diff --git a/tex/context/base/node-res.lua b/tex/context/base/node-res.lua
index 1487faa66..0a0cd0dc1 100644
--- a/tex/context/base/node-res.lua
+++ b/tex/context/base/node-res.lua
@@ -31,10 +31,11 @@ local nodecodes = nodes.nodecodes
local glyph_code = nodecodes.glyph
-local reserved = { }
+local reserved, nofreserved = { }, 0
local function register_node(n)
- reserved[#reserved+1] = n
+ nofreserved = nofreserved + 1
+ reserved[nofreserved] = n
return n
end
@@ -42,8 +43,8 @@ pool.register = register_node
function pool.cleanup(nofboxes) -- todo
nodes.tracers.steppers.reset() -- todo: make a registration subsystem
- local nr, nl = #reserved, 0
- for i=1,nr do
+ local nl, nr = 0, nofreserved
+ for i=1,nofreserved do
local ri = reserved[i]
-- if not (ri.id == glue_spec and not ri.is_writable) then
free_node(reserved[i])
@@ -60,6 +61,7 @@ function pool.cleanup(nofboxes) -- todo
end
end
reserved = { }
+ nofreserved = 0
return nr, nl, nofboxes -- can be nil
end