[PATCH 3/5] reftable/writer: simplify writing index records
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Jan 26, 2024, 10:31 UTC
- Message-ID
- <b0982baacf74a4501ce5c543b294bc15d6937875.1706263918.git.ps@pks.im>
- In-Reply-To
- <cover.1706263918.git.ps@pks.im>
When finishing the current section we may end up writing index records for the section to the table. The logic to do so essentially copies what we already have in `writer_add_record()`, making this more complicated than it really has to be.
Simplify the code by using `writer_add_record()` instead.
Signed-off-by: Patrick Steinhardt <ps@pks.im> --- reftable/writer.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-)
diff --git a/reftable/writer.c b/reftable/writer.c index 5a0b87b406..2525f236b9 100644 --- a/reftable/writer.c +++ b/reftable/writer.c @@ -405,6 +405,7 @@ static int writer_finish_section(struct reftable_writer *w) w->index = NULL; w->index_len = 0; w->index_cap = 0; + for (i = 0; i < idx_len; i++) { struct reftable_record rec = { .type = BLOCK_TYPE_INDEX, @@ -412,26 +413,14 @@ static int writer_finish_section(struct reftable_writer *w) .idx = idx[i], }, }; - if (block_writer_add(w->block_writer, &rec) == 0) { - continue; - } - err = writer_flush_block(w); + err = writer_add_record(w, &rec); if (err < 0) return err; - - writer_reinit_block_writer(w, BLOCK_TYPE_INDEX); - - err = block_writer_add(w->block_writer, &rec); - if (err != 0) { - /* write into fresh block should always succeed - */ - abort(); - } } - for (i = 0; i < idx_len; i++) { + + for (i = 0; i < idx_len; i++) strbuf_release(&idx[i].last_key); - } reftable_free(idx); }
-- 2.43.GIT