aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2024-05-13 10:47:21 +0200
committerJunio C Hamano <gitster@pobox.com>2024-05-13 17:04:17 -0700
commitf1e3c12196b6c91086b58495499db0f4802fa5d1 (patch)
treefff14cc834879440379cdadcc12fe622ebb7934c
parent81a03a323664d3d14a25e2ef8b29fe52dcef2126 (diff)
downloadgit-f1e3c12196b6c91086b58495499db0f4802fa5d1.tar.gz
reftable/reader: inline `reader_seek_internal()`
We have both `reader_seek()` and `reader_seek_internal()`, where the former function only exists so that we can exit early in case the given table has no records of the sought-after type. Merge these two functions into one. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--reftable/reader.c34
1 files changed, 12 insertions, 22 deletions
diff --git a/reftable/reader.c b/reftable/reader.c
index b210753441..c3541e2c43 100644
--- a/reftable/reader.c
+++ b/reftable/reader.c
@@ -573,21 +573,25 @@ done:
return err;
}
-static int reader_seek_internal(struct reftable_reader *r,
- struct reftable_iterator *it,
- struct reftable_record *rec)
+static int reader_seek(struct reftable_reader *r, struct reftable_iterator *it,
+ struct reftable_record *rec)
{
- struct reftable_reader_offsets *offs =
- reader_offsets_for(r, reftable_record_type(rec));
- uint64_t idx = offs->index_offset;
+ uint8_t typ = reftable_record_type(rec);
+ struct reftable_reader_offsets *offs = reader_offsets_for(r, typ);
struct table_iter ti = TABLE_ITER_INIT, *p;
int err;
- err = table_iter_seek_start(&ti, r, reftable_record_type(rec), !!idx);
+ if (!offs->is_present) {
+ iterator_set_empty(it);
+ return 0;
+ }
+
+ err = table_iter_seek_start(&ti, r, reftable_record_type(rec),
+ !!offs->index_offset);
if (err < 0)
goto out;
- if (idx)
+ if (offs->index_offset)
err = table_iter_seek_indexed(&ti, rec);
else
err = table_iter_seek_linear(&ti, rec);
@@ -604,20 +608,6 @@ out:
return err;
}
-static int reader_seek(struct reftable_reader *r, struct reftable_iterator *it,
- struct reftable_record *rec)
-{
- uint8_t typ = reftable_record_type(rec);
-
- struct reftable_reader_offsets *offs = reader_offsets_for(r, typ);
- if (!offs->is_present) {
- iterator_set_empty(it);
- return 0;
- }
-
- return reader_seek_internal(r, it, rec);
-}
-
int reftable_reader_seek_ref(struct reftable_reader *r,
struct reftable_iterator *it, const char *name)
{