gpgscm: Optimize symbol lookups and insertions.
authorJustus Winter <justus@g10code.com>
Tue, 31 Jan 2017 12:22:40 +0000 (13:22 +0100)
committerJustus Winter <justus@g10code.com>
Tue, 31 Jan 2017 17:49:27 +0000 (18:49 +0100)
commitcea6d114b60deaecfbc2eb1aedbdfb7e6700922f
tree109ec3dcdd7963d0dd5d22eb0e8e99fb4dc89919
parent8f0ecb16cbb3798ad18be5f05b826db2aa1aaa00
gpgscm: Optimize symbol lookups and insertions.

* tests/gpgscm/scheme.c (oblist_find_by_name): Keep the list of
symbols sorted, return the slot where a new symbol must be inserted on
lookup failures.
(oblist_add_by_name): Add the new symbol at the given slot.
(mk_symbol): Adjust callsite.
(gensym): Likewise.
(assign_syntax): Likewise.
--
Optimize symbol lookups by keeping the lists in the hash table (or the
list if compiled with USE_OBJECT_LIST) sorted by the symbol names.
Optimize the insertions by passing the slot computed by the lookup to
the insertion.

Signed-off-by: Justus Winter <justus@g10code.com>
tests/gpgscm/scheme.c