On Tue, Sep 17, 2024 at 11:39:04AM +0200, Patrick Steinhardt wrote: > > Ugh, I just read the next hunk below, so ignore me here ;-). > > ;) > > I was also wondering whether we'd want to amend the generic parts of the > refs interface to filter out globs. But it is entirely feasible that a > backend can indeed filter out globs efficiently, even though none of the > current ones can. So it kind of makes sense to keep things as-is and let > the backends themselves decide what they can use. Yep, agreed. > > One question I had reading this is why we don't filter these out on the > > fly in the iterator itself instead of allocating a separate array that > > we have to xstrdup() into and free later on. > > > > We may be at the point of diminishing returns here, but I wonder if > > allocating this thing is more expensive than a few redundant strcmp()s > > and calls to is_glob_special(). I dunno. > > I think duplicating the array is the right thing to do anyway to not get > weird lifetime issues with the exclude patterns. A caller may set up a > ref iterator that they may end up using for longer than they keep alive > the exlude patterns passed to the iterator. So by duplicating the array > we might end up wasting a bit of memory, but we avoid such lifetime > problems completely, which I think is a win to make the infrastructure > less fragile. OK, I trust your judgement here over my own as not having nearly the familiarity with reftables as you do. Thanks, Taylor