Re: [PATCH 00/13] reftable: prepare for re-seekable iterators
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 9, 2024, 00:16 UTC
- Message-ID
- <xmqqmsozx2j4.fsf@gitster.g>
- In-Reply-To
- <xmqqwmo3x44s.fsf@gitster.g>
Junio C Hamano <gitster@pobox.com> writes:
Show 13 quoted lines
> diff --git c/reftable/reader.c w/reftable/reader.c
> index 2ea830bdb6..fd516e01db 100644
> --- c/reftable/reader.c
> +++ w/reftable/reader.c
> @@ -841,7 +841,7 @@ int reftable_reader_print_blocks(const char *tablename)
> },
> };
> struct reftable_block_source src = { 0 };
> - struct table_iter ti = TABLE_ITER_INIT;
> + struct table_iter *ti;
> struct reftable_reader *r = NULL;
> size_t i;
> int err;... an unusually early error could skip everything here ...
Show 6 quoted lines
> @@ -880,6 +883,6 @@ int reftable_reader_print_blocks(const char *tablename) > > done: > reftable_reader_free(r); > - table_iter_close(&ti); > + table_iter_close(ti);
... and cause this to break. In the version of the merge-fix I used, *ti is initialized to NULL and the _close() is called only when ti is not NULL.
> return err; > }