Re: [PATCH v2 12/16] refs/iterator: implement seeking for reftable iterators

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 24, 2025 at 10:00:28PM +0800, shejialuo wrote:
> On Wed, Feb 19, 2025 at 02:23:39PM +0100, Patrick Steinhardt wrote:
> > diff --git a/refs/reftable-backend.c b/refs/reftable-backend.c
> > index 06543f79c64..b0c09f34433 100644
> > --- a/refs/reftable-backend.c
> > +++ b/refs/reftable-backend.c
> > @@ -718,6 +718,20 @@ static int reftable_ref_iterator_advance(struct ref_iterator *ref_iterator)
> >  	return ITER_OK;
> >  }
> >  
> > +static int reftable_ref_iterator_seek(struct ref_iterator *ref_iterator,
> > +				      const char *prefix)
> > +{
> > +	struct reftable_ref_iterator *iter =
> > +		(struct reftable_ref_iterator *)ref_iterator;
> > +
> > +	free(iter->prefix);
> > +	iter->prefix = xstrdup_or_null(prefix);
> > +	iter->prefix_len = prefix ? strlen(prefix) : 0;
> > +	iter->err = reftable_iterator_seek_ref(&iter->iter, prefix);
> 
> Should we rename this function `reftable_iterator_seek_ref` by the way?
> It is a little strange that we have two functions which are so similar:
> 
> 1. reftable_ref_iterator_seek
> 2. reftable_iterator_seek_ref
> 
> However, don't worth a reroll.

Well, they do similar things, but at different levels:

  - `reftable_ref_iterator_seek()` operates on the high-level generic
    `struct ref_iterator`.

  - `reftable_iterator_seek_ref()` operates on the low-level `struct
    reftable_ref_iterator` provided by the reftable library.

As such I think that they are named appropriately as their prefixes tell
us which structure they operate on.

Patrick




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux