1515#include "../reftable/reftable-record.h"
1616#include "../reftable/reftable-error.h"
1717#include "../reftable/reftable-iterator.h"
18- #include "../reftable/reftable-merged.h"
1918#include "../setup.h"
2019#include "../strmap.h"
2120#include "parse.h"
@@ -462,7 +461,6 @@ static struct reftable_ref_iterator *ref_iterator_for_stack(struct reftable_ref_
462461 const char * prefix ,
463462 int flags )
464463{
465- struct reftable_merged_table * merged_table ;
466464 struct reftable_ref_iterator * iter ;
467465 int ret ;
468466
@@ -482,9 +480,8 @@ static struct reftable_ref_iterator *ref_iterator_for_stack(struct reftable_ref_
482480 if (ret )
483481 goto done ;
484482
485- merged_table = reftable_stack_merged_table (stack );
486-
487- ret = reftable_merged_table_seek_ref (merged_table , & iter -> iter , prefix );
483+ reftable_stack_init_ref_iterator (stack , & iter -> iter );
484+ ret = reftable_iterator_seek_ref (& iter -> iter , prefix );
488485 if (ret )
489486 goto done ;
490487
@@ -1015,8 +1012,6 @@ static int transaction_update_cmp(const void *a, const void *b)
10151012static int write_transaction_table (struct reftable_writer * writer , void * cb_data )
10161013{
10171014 struct write_transaction_table_arg * arg = cb_data ;
1018- struct reftable_merged_table * mt =
1019- reftable_stack_merged_table (arg -> stack );
10201015 uint64_t ts = reftable_stack_next_update_index (arg -> stack );
10211016 struct reftable_log_record * logs = NULL ;
10221017 struct ident_split committer_ident = {0 };
@@ -1051,6 +1046,8 @@ static int write_transaction_table(struct reftable_writer *writer, void *cb_data
10511046 struct reftable_log_record log = {0 };
10521047 struct reftable_iterator it = {0 };
10531048
1049+ reftable_stack_init_log_iterator (arg -> stack , & it );
1050+
10541051 /*
10551052 * When deleting refs we also delete all reflog entries
10561053 * with them. While it is not strictly required to
@@ -1060,7 +1057,7 @@ static int write_transaction_table(struct reftable_writer *writer, void *cb_data
10601057 * Unfortunately, we have no better way than to delete
10611058 * all reflog entries one by one.
10621059 */
1063- ret = reftable_merged_table_seek_log ( mt , & it , u -> refname );
1060+ ret = reftable_iterator_seek_log ( & it , u -> refname );
10641061 while (ret == 0 ) {
10651062 struct reftable_log_record * tombstone ;
10661063
@@ -1354,7 +1351,6 @@ static int write_copy_table(struct reftable_writer *writer, void *cb_data)
13541351{
13551352 struct write_copy_arg * arg = cb_data ;
13561353 uint64_t deletion_ts , creation_ts ;
1357- struct reftable_merged_table * mt = reftable_stack_merged_table (arg -> stack );
13581354 struct reftable_ref_record old_ref = {0 }, refs [2 ] = {0 };
13591355 struct reftable_log_record old_log = {0 }, * logs = NULL ;
13601356 struct reftable_iterator it = {0 };
@@ -1488,7 +1484,8 @@ static int write_copy_table(struct reftable_writer *writer, void *cb_data)
14881484 * copy over all log entries from the old reflog. Last but not least,
14891485 * when renaming we also have to delete all the old reflog entries.
14901486 */
1491- ret = reftable_merged_table_seek_log (mt , & it , arg -> oldname );
1487+ reftable_stack_init_log_iterator (arg -> stack , & it );
1488+ ret = reftable_iterator_seek_log (& it , arg -> oldname );
14921489 if (ret < 0 )
14931490 goto done ;
14941491
@@ -1694,7 +1691,6 @@ static struct ref_iterator_vtable reftable_reflog_iterator_vtable = {
16941691static struct reftable_reflog_iterator * reflog_iterator_for_stack (struct reftable_ref_store * refs ,
16951692 struct reftable_stack * stack )
16961693{
1697- struct reftable_merged_table * merged_table ;
16981694 struct reftable_reflog_iterator * iter ;
16991695 int ret ;
17001696
@@ -1711,9 +1707,8 @@ static struct reftable_reflog_iterator *reflog_iterator_for_stack(struct reftabl
17111707 if (ret < 0 )
17121708 goto done ;
17131709
1714- merged_table = reftable_stack_merged_table (stack );
1715-
1716- ret = reftable_merged_table_seek_log (merged_table , & iter -> iter , "" );
1710+ reftable_stack_init_log_iterator (stack , & iter -> iter );
1711+ ret = reftable_iterator_seek_log (& iter -> iter , "" );
17171712 if (ret < 0 )
17181713 goto done ;
17191714
@@ -1771,16 +1766,15 @@ static int reftable_be_for_each_reflog_ent_reverse(struct ref_store *ref_store,
17711766 struct reftable_ref_store * refs =
17721767 reftable_be_downcast (ref_store , REF_STORE_READ , "for_each_reflog_ent_reverse" );
17731768 struct reftable_stack * stack = stack_for (refs , refname , & refname );
1774- struct reftable_merged_table * mt = NULL ;
17751769 struct reftable_log_record log = {0 };
17761770 struct reftable_iterator it = {0 };
17771771 int ret ;
17781772
17791773 if (refs -> err < 0 )
17801774 return refs -> err ;
17811775
1782- mt = reftable_stack_merged_table (stack );
1783- ret = reftable_merged_table_seek_log ( mt , & it , refname );
1776+ reftable_stack_init_log_iterator (stack , & it );
1777+ ret = reftable_iterator_seek_log ( & it , refname );
17841778 while (!ret ) {
17851779 ret = reftable_iterator_next_log (& it , & log );
17861780 if (ret < 0 )
@@ -1808,7 +1802,6 @@ static int reftable_be_for_each_reflog_ent(struct ref_store *ref_store,
18081802 struct reftable_ref_store * refs =
18091803 reftable_be_downcast (ref_store , REF_STORE_READ , "for_each_reflog_ent" );
18101804 struct reftable_stack * stack = stack_for (refs , refname , & refname );
1811- struct reftable_merged_table * mt = NULL ;
18121805 struct reftable_log_record * logs = NULL ;
18131806 struct reftable_iterator it = {0 };
18141807 size_t logs_alloc = 0 , logs_nr = 0 , i ;
@@ -1817,8 +1810,8 @@ static int reftable_be_for_each_reflog_ent(struct ref_store *ref_store,
18171810 if (refs -> err < 0 )
18181811 return refs -> err ;
18191812
1820- mt = reftable_stack_merged_table (stack );
1821- ret = reftable_merged_table_seek_log ( mt , & it , refname );
1813+ reftable_stack_init_log_iterator (stack , & it );
1814+ ret = reftable_iterator_seek_log ( & it , refname );
18221815 while (!ret ) {
18231816 struct reftable_log_record log = {0 };
18241817
@@ -1855,7 +1848,6 @@ static int reftable_be_reflog_exists(struct ref_store *ref_store,
18551848 struct reftable_ref_store * refs =
18561849 reftable_be_downcast (ref_store , REF_STORE_READ , "reflog_exists" );
18571850 struct reftable_stack * stack = stack_for (refs , refname , & refname );
1858- struct reftable_merged_table * mt = reftable_stack_merged_table (stack );
18591851 struct reftable_log_record log = {0 };
18601852 struct reftable_iterator it = {0 };
18611853 int ret ;
@@ -1868,7 +1860,8 @@ static int reftable_be_reflog_exists(struct ref_store *ref_store,
18681860 if (ret < 0 )
18691861 goto done ;
18701862
1871- ret = reftable_merged_table_seek_log (mt , & it , refname );
1863+ reftable_stack_init_log_iterator (stack , & it );
1864+ ret = reftable_iterator_seek_log (& it , refname );
18721865 if (ret < 0 )
18731866 goto done ;
18741867
@@ -1966,21 +1959,21 @@ struct write_reflog_delete_arg {
19661959static int write_reflog_delete_table (struct reftable_writer * writer , void * cb_data )
19671960{
19681961 struct write_reflog_delete_arg * arg = cb_data ;
1969- struct reftable_merged_table * mt =
1970- reftable_stack_merged_table (arg -> stack );
19711962 struct reftable_log_record log = {0 }, tombstone = {0 };
19721963 struct reftable_iterator it = {0 };
19731964 uint64_t ts = reftable_stack_next_update_index (arg -> stack );
19741965 int ret ;
19751966
19761967 reftable_writer_set_limits (writer , ts , ts );
19771968
1969+ reftable_stack_init_log_iterator (arg -> stack , & it );
1970+
19781971 /*
19791972 * In order to delete a table we need to delete all reflog entries one
19801973 * by one. This is inefficient, but the reftable format does not have a
19811974 * better marker right now.
19821975 */
1983- ret = reftable_merged_table_seek_log ( mt , & it , arg -> refname );
1976+ ret = reftable_iterator_seek_log ( & it , arg -> refname );
19841977 while (ret == 0 ) {
19851978 ret = reftable_iterator_next_log (& it , & log );
19861979 if (ret < 0 )
@@ -2116,7 +2109,6 @@ static int reftable_be_reflog_expire(struct ref_store *ref_store,
21162109 struct reftable_ref_store * refs =
21172110 reftable_be_downcast (ref_store , REF_STORE_WRITE , "reflog_expire" );
21182111 struct reftable_stack * stack = stack_for (refs , refname , & refname );
2119- struct reftable_merged_table * mt = reftable_stack_merged_table (stack );
21202112 struct reftable_log_record * logs = NULL ;
21212113 struct reftable_log_record * rewritten = NULL ;
21222114 struct reftable_ref_record ref_record = {0 };
@@ -2135,7 +2127,9 @@ static int reftable_be_reflog_expire(struct ref_store *ref_store,
21352127 if (ret < 0 )
21362128 goto done ;
21372129
2138- ret = reftable_merged_table_seek_log (mt , & it , refname );
2130+ reftable_stack_init_log_iterator (stack , & it );
2131+
2132+ ret = reftable_iterator_seek_log (& it , refname );
21392133 if (ret < 0 )
21402134 goto done ;
21412135
0 commit comments