[Dev-luatex] unique node id?

Hans Hagen pragma at wxs.nl
Sun Aug 29 13:36:35 CEST 2010

On 29-8-2010 1:29, Taco Hoekwater wrote:
> On 08/29/2010 01:15 PM, Hans Hagen wrote:
>> On 29-8-2010 9:03, Taco Hoekwater wrote:
>>> On 08/29/2010 08:48 AM, Patrick Gundlach wrote:
>>>>> Is the following 172 something like I need? How would I access that
>>>>> (besides string.gsub())?
>>>>> <node nil< 172> nil : hlist 2>
>>>> I am currently using this number in the middle via tostring() and
>>>> gsub(). But I'd still like to know if this can be used as an id.
>>> This number uniquely identifies a node for as long as it stays
>>> allocated, yes. If it is freed, a new node may have the same
>>> number.
>> but for storing the node's id one can as well use the nodes user object
>> itself as it's equally unique during the livespan of a node and one can
>> compare pointers so the 'id' snippet in the string is not giving more
>> uniqueness than the node user object itself
> Not necessarily: there can be different userdata objects for the same
> node. (I only just now realized that)

Sure, and in the beginning we even had problems with the comparison (and 
I know of a few places in my code that I need to deal with it) but I 
think that for patricks case the only thing that matters is uniqueness 
during a certain period (this graph creation i guess)

Anyhow, a way out is:

local t = {}
for ... loop over fields in node ... do
   t[k] = ...
hash = table.concat(t) -- maybe with some sort on keys beforehand


                                           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 dev-luatex mailing list