in reply to Re: RFC on Inline::C hack: Hash_Iterator
in thread RFC on Inline::C hack: Hash_Iterator
...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
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^3: RFC on Inline::C hack: Hash_Iterator
by Tanalis (Curate) on Aug 02, 2005 at 07:19 UTC | |
by demerphq (Chancellor) on Aug 02, 2005 at 11:03 UTC | |
by Tanalis (Curate) on Aug 02, 2005 at 11:51 UTC | |
by demerphq (Chancellor) on Aug 02, 2005 at 12:58 UTC |