]> git.ipfire.org Git - thirdparty/git.git/commitdiff
reftable/reader: inline `reader_seek_internal()`
authorPatrick Steinhardt <ps@pks.im>
Mon, 13 May 2024 08:47:21 +0000 (10:47 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 14 May 2024 00:04:17 +0000 (17:04 -0700)
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>
reftable/reader.c

index b2107534417235bec11058deb90cf640de079ff9..c3541e2c43c99dcb1f265808acb71479c31f0d1d 100644 (file)
@@ -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)
 {