aboutsummaryrefslogtreecommitdiff
path: root/reftable/reader.c
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2025-02-18 10:20:41 +0100
committerJunio C Hamano <gitster@pobox.com>2025-02-18 10:55:36 -0800
commit9d9fac0f34ec47cc6eafeb3e10378ab8f3310346 (patch)
tree2dcef8922bd24884fcda6856291dc32ecbdfd081 /reftable/reader.c
parenta967966432f25324c79524c0cb18d6e152d0b6af (diff)
downloadgit-9d9fac0f34ec47cc6eafeb3e10378ab8f3310346.tar.xz
reftable/record: stop using `BUG()` in `reftable_record_init()`
We're aborting the program via `BUG()` in case `reftable_record_init()` was invoked with an unknown record type. This is bad because we may now die in library code, and because it makes us depend on the Git codebase. Refactor the code such that `reftable_record_init()` can return an error code to the caller. Adapt any callers accordingly. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'reftable/reader.c')
-rw-r--r--reftable/reader.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/reftable/reader.c b/reftable/reader.c
index 3f2e4b2800..de6e6dd932 100644
--- a/reftable/reader.c
+++ b/reftable/reader.c
@@ -360,7 +360,10 @@ static int table_iter_seek_linear(struct table_iter *ti,
struct reftable_record rec;
int err;
- reftable_record_init(&rec, reftable_record_type(want));
+ err = reftable_record_init(&rec, reftable_record_type(want));
+ if (err < 0)
+ goto done;
+
err = reftable_record_key(want, &want_key);
if (err < 0)
goto done;