[luatex] robustness of node.traverse
Hans Hagen
pragma at wxs.nl
Fri Nov 9 00:44:08 CET 2012
On 11/8/2012 10:47 PM, Stephan Hennig wrote:
> Hi,
>
> the manual is quite terse about node.traverse(). I'd like to know what
> operations (insertion/removal) on the node list given as argument to
> node.traverse() are save in a loop like
>
> for n in node.traverse(head) do
> ...
> end
best is not to remove n and mess with the n.next pointer
the traverse is mostly there for fast loops that only deal with the
properties of nodes
> I'd guess removing the current node in the loop body is not a good idea.
> But anything else? Sure, inserting before/after the current node
> changes the current node, too. But that shouldn't be a problem, should it?
in that case best use
local n = head
while n do
...
n = n.next
end
(often just as efficient)
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
More information about the luatex
mailing list