[PATCH 00/10] reftable: stop using `struct strbuf`
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Oct 11, 2024, 06:54 UTC
- Message-ID
- <cover.1728629612.git.ps@pks.im>
Hi,
this is the second patch series on my quest to make the reftable library become a standalone library again that can be used by libgit2 without pulling in all kinds of dependencies from the Git codebase. This part makes us lose the dependency on `struct strbuf`, which is done due to three reasons:
- To make us independent of libgit.a.
- To ensure that we use the pluggable allocators that users can set up
via `reftable_set_alloc()`.- To make it possible to handle memory allocation failures.
While this leads to some duplication, we're only talking about ~70 lines of code.
Thanks!
Patrick
Patrick Steinhardt (10):
reftable: stop using `strbuf_addbuf()`
reftable: stop using `strbuf_addf()`
reftable/basics: provide new `reftable_buf` interface
reftable: convert from `strbuf` to `reftable_buf`
reftable/blocksource: adapt interface name
t/unit-tests: check for `reftable_buf` allocation errors
reftable/stack: adapt `format_name()` to handle allocation failures
reftable/record: adapt `reftable_record_key()` to handle allocation
failures
reftable/stack: adapt `stack_filename()` to handle allocation failures
reftable: handle trivial `reftable_buf` errorsreftable/basics.c | 75 +++++++++- reftable/basics.h | 19 ++- reftable/block.c | 61 +++++--- reftable/block.h | 14 +- reftable/blocksource.c | 30 ++-- reftable/blocksource.h | 5 +- reftable/iter.c | 9 +- reftable/iter.h | 8 +- reftable/reader.c | 27 ++-- reftable/record.c | 114 ++++++++------ reftable/record.h | 21 +-- reftable/stack.c | 221 ++++++++++++++++++---------- reftable/system.h | 1 - reftable/writer.c | 102 ++++++++----- reftable/writer.h | 2 +- t/unit-tests/lib-reftable.c | 4 +- t/unit-tests/lib-reftable.h | 7 +- t/unit-tests/t-reftable-basics.c | 16 +- t/unit-tests/t-reftable-block.c | 53 +++---- t/unit-tests/t-reftable-merged.c | 32 ++-- t/unit-tests/t-reftable-reader.c | 12 +- t/unit-tests/t-reftable-readwrite.c | 134 +++++++++-------- t/unit-tests/t-reftable-record.c | 74 +++++----- t/unit-tests/t-reftable-stack.c | 96 ++++++------ 24 files changed, 685 insertions(+), 452 deletions(-)
-- 2.47.0.dirty