tree b2510557f854f522c117d2e067f414d01a0cc3c1
parent 92e5c858c246f3a01104f511c23217fd75c272f4
author Nikias Bassen <nikias@gmx.li> 1545529100 +0100
committer Nikias Bassen <nikias@gmx.li> 1545529100 +0100

plist: Improve plist_dict_next_item() drastically by iterating on node list directly

As Xiao Deng pointed out in #131, plist_dict_next_item() was very inefficient.
For each iteration, node_nth_child() was called with the iterator value, which
would walk through the child node list on EVERY iteration. If the dictionary
is large this makes things very slow. More than that, after reaching the key
node the code was calling node_nth_child() AGAIN (with iterator value + 1) to
reach the value node, which would walk through the node list once more.
This commit changes the iterator to be a node_t pointer so that the iteration
is done on the node list directly.
