• Tony Finch's avatar
    trie: refactor to prepare for copy-on-write support · e7b7e187
    Tony Finch authored
    No functional change.
    
    The point of this commit is to make it possible to stash a few
    flags in leaf nodes as well as branch nodes, though we don't
    yet exercise this possibility in any meaningful way.
    
    This fixes a foolish mistake in the original qp trie data structure
    declarations: the combination of unions and bitfields is a complete
    disaster for portability, and it gets into dangerous territory wrt
    compiler optimization. Instead, we just use a big enough word (uint64_t)
    which is broken up into fields using accessor macros and inline functions,
    and cast it to a pointer when necessary. We don't actually care about
    the detailed layout in memory, just the numeric value, so a union was
    the wrong tool.
    e7b7e187
Name
Last commit
Last update
distro Loading commit data...
doc Loading commit data...
m4 Loading commit data...
python Loading commit data...
samples Loading commit data...
scripts Loading commit data...
src Loading commit data...
tests Loading commit data...
tests-extra Loading commit data...
tests-fuzz Loading commit data...
.dir-locals.el Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitlab-ci.yml Loading commit data...
.gitmodules Loading commit data...
.ycm_extra_conf.py Loading commit data...
COPYING Loading commit data...
Doxyfile.in Loading commit data...
Knot.config Loading commit data...
Knot.creator Loading commit data...
Knot.files Loading commit data...
Knot.includes Loading commit data...
Makefile.am Loading commit data...
NEWS Loading commit data...
README Loading commit data...
autogen.sh Loading commit data...
configure.ac Loading commit data...
coverity_model.c Loading commit data...