On Tue, Sep 05, 2017 at 11:03:36AM +0200, Michael Haggerty wrote: > > It feels pretty dirty, though. It would certainly be a bug if we ever > > decided to switch affected_refnames to duplicate its strings. > > > > So given that your solution is only a constant-time factor worse in > > efficiency, we should probably prefer it as the more maintainable > > option. > > This is clever, but I don't like that it requires outside code to > change internal `string_list` structures in a way that is not > documented to be OK. > > If we cared about getting rid of the extra `O(lg N)` search (and I > agree with you that it doesn't matter in this case), I think the clean > way to do it would be for `string_list` to expose a method like > > struct string_list_item *string_list_insert_at_index(struct > string_list *list, size_t index, const char *string); > > and to use it, together with `string_list_find_insert_index()`, to > avoid having to search twice. Yes, agreed on all counts. -Peff