summaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2021-09-10Add custom allocator supportDavid Robillard5-84/+182
2021-09-10Add nullability annotationsDavid Robillard2-0/+52
This allows clang to issue warnings at compile time when null is passed to a non-null parameter. For public entry points, also add assertions to catch such issues when the compiler does not support this.
2021-09-10Rewrite ZixHash as a flat table with open addressingDavid Robillard1-145/+258
2021-09-10Replace CRC32 digest with more modern and appropriate algorithmsDavid Robillard1-100/+172
This makes the hassle of platform-specific code go away, and instead uses portable implementations of relatively standard modern hash algorithms. CRC32 is not great as a hash function anyway, though it is very fast when hardware accelerated.
2021-09-10Fix cast alignment warnings in SSE4.2 digest codeDavid Robillard1-5/+29
2021-09-10Add a user handle to destroy callbackDavid Robillard2-21/+30
2021-09-10Simplify BTree implementationDavid Robillard1-253/+388
2021-09-10Allow ZixBTreeIter to be allocated on the stackDavid Robillard1-170/+104
2021-09-10Remove destroy field of BTree and add zix_btree_clear()David Robillard1-29/+36
If this is used, it is only when clearing or freeing a tree. Allowing it to be given as a parameter directly there is clearer and avoids bloating the tree itself with information that isn't needed.
2021-09-10Remove BTree debug printingDavid Robillard1-37/+0
2021-09-10Avoid implicit padding in BTree nodes on 64-bitDavid Robillard1-8/+15
Might as well use 32-bit integers if the space is there anyway.
2021-09-10Be explicit about the sign of defined integer constantsDavid Robillard1-4/+4
2021-09-10Fix conversion warningsDavid Robillard1-1/+1
2021-09-10Remove ZixStrindexDavid Robillard1-263/+0
2021-07-17Remove ZixSortedArrayDavid Robillard1-193/+0
2021-07-17Avoid allegedly "suspicious" string comparisonsDavid Robillard1-1/+1
I guess these are suspicious if you've never seen C before?
2021-07-17Use line comments where appropriateDavid Robillard2-12/+12
2021-06-30Add pure attribute to internal BTree accessor functionsDavid Robillard1-0/+3
2021-06-30Fix hash size after removing elementsDavid Robillard1-1/+1
2021-01-16Allow all free functions to be called on nullDavid Robillard2-6/+10
2021-01-12Fix crash with optimized builds with GCC 10.1.0David Robillard1-1/+1
2020-12-31Fix zix_sorted_array_iter_is_end()David Robillard1-1/+1
2020-12-31Fix MinGW buildDavid Robillard1-1/+0
2020-12-31Fix potential balance overflowDavid Robillard1-4/+4
2020-12-31Update copyright headersDavid Robillard9-22/+22
2020-12-31Remove ZixChunkDavid Robillard1-33/+0
2020-12-31Initialize all variablesDavid Robillard1-4/+4
2020-12-31Fix use of reserved identifiersDavid Robillard1-8/+8
2020-12-31Remove ZIX_PRIVATE and ZIX_INLINE mechanismsDavid Robillard2-56/+28
A normal C library ought to be good enough for anybody.
2020-12-31Separate source from headersDavid Robillard10-0/+3071
2012-08-10Minimal space overhead inline value hash table.David Robillard8-2410/+0
Add ZixChunk. Add SSE 4.2 accelerated digest (with fallback) in zix/digest.h. Make library optionally header-only (define ZIX_INLINE). git-svn-id: http://svn.drobilla.net/zix/trunk@76 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
2012-08-09Merge changes from lilv.David Robillard1-4/+6
git-svn-id: http://svn.drobilla.net/zix/trunk@73 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
2012-08-09Fix warnings: -Wshadow -Wpointer-arith -Wcast-align -Wstrict-prototypes ↵David Robillard2-3/+6
-Wmissing-prototypes. git-svn-id: http://svn.drobilla.net/zix/trunk@72 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
2012-02-01Reduce use of non-portable %zu format.David Robillard1-3/+4
git-svn-id: http://svn.drobilla.net/zix/trunk@56 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
2012-01-31Fix compilation on sane platforms.David Robillard1-0/+4
git-svn-id: http://svn.drobilla.net/zix/trunk@52 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
2012-01-31Windows/Visual C++ portability.David Robillard7-27/+34
git-svn-id: http://svn.drobilla.net/zix/trunk@51 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
2012-01-31Full test coverage for ZixRing.David Robillard2-12/+6
Update waf. git-svn-id: http://svn.drobilla.net/zix/trunk@50 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
2011-10-09Fix ZixRing error when reading split/wrapped messages.David Robillard1-1/+1
Use a non-power-of-two message size in ZixRing test to test this. git-svn-id: http://svn.drobilla.net/zix/trunk@43 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
2011-09-29TidyDavid Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/zix/trunk@42 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
2011-09-28Add destructor parameter and zix_tree_sizeDavid Robillard1-12/+37
git-svn-id: http://svn.drobilla.net/zix/trunk@41 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
2011-09-28More glib like interface for ZixTree.David Robillard2-189/+267
Move ZixTree debug stuff to tree_debug.h. Support reverse iteration over ZixTree. git-svn-id: http://svn.drobilla.net/zix/trunk@40 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
2011-09-28Add ZixHashDavid Robillard1-0/+226
git-svn-id: http://svn.drobilla.net/zix/trunk@39 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
2011-09-20Abstract away node allocation for easier tinkering.David Robillard1-5/+12
git-svn-id: http://svn.drobilla.net/zix/trunk@38 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
2011-09-20Remove use of strcmp in zix_patree_insert.David Robillard1-20/+17
git-svn-id: http://svn.drobilla.net/zix/trunk@37 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
2011-09-20Const correctness.David Robillard1-21/+22
git-svn-id: http://svn.drobilla.net/zix/trunk@36 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
2011-09-20Terser and more cache-friendly version with SSE4.2 support.David Robillard1-67/+147
git-svn-id: http://svn.drobilla.net/zix/trunk@35 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
2011-09-20Remove pointless loop conditional.David Robillard1-31/+27
git-svn-id: http://svn.drobilla.net/zix/trunk@34 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
2011-09-20Move children index into separate array (fewer cache misses in ↵David Robillard1-6/+11
patree_find_edge). git-svn-id: http://svn.drobilla.net/zix/trunk@33 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
2011-09-19Fix comment header typo.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/zix/trunk@32 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
2011-09-19Cache the first character of the label in node for faster search.David Robillard1-21/+28
This makes patree_find_edge have an ideal linear memory access pattern. git-svn-id: http://svn.drobilla.net/zix/trunk@31 df6676b4-ccc9-40e5-b5d6-7c4628a128e3