...and where can I find the documentation to HeNEXT ?
HeNEXT is a macro (surprise!), defined in hv.h as
where hent_next is a field in the following struct (also from hv.h):#define HeNEXT(he) (he)->hent_next
So basically HeNEXT scoots along a linked list of hash entries (those belonging to a given bucket, to be precise). As you can see, the data structure only provides for travel in one direction. Therefore, I don't see an easy way to implement a prev method. If I had to have it, I think I'd just accept the memory hit and use the keys array-based implementation I described briefly in my OP. Then prev reduces to decrementing a cursor variable.typedef struct he HE; /* ... */ /* entry in hash value chain */ struct he { HE *hent_next; /* next entry in chain */ HEK *hent_hek; /* hash key */ SV *hent_val; /* scalar value that was hashed */ };
the lowliest monk
In reply to Re^2: RFC on Inline::C hack: Hash_Iterator
by tlm
in thread RFC on Inline::C hack: Hash_Iterator
by tlm
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |