On Wed, May 29, 2024 at 02:01:08PM -0700, Junio C Hamano wrote: > Patrick Steinhardt <ps@xxxxxx> writes: > > > When computing the rebase strategy we temporarily assign a string > > constant to `options.strategy` before we call `xstrdup()` on it. > > Furthermore, the default backend is being assigned a string constant via > > `REBASE_OPTIONS_INIT`. Both of these will cause warnings once we enable > > `-Wwrite-strings`. > > > > Adapt the code such that we only store allocated strings in those > > variables. > > > > Signed-off-by: Patrick Steinhardt <ps@xxxxxx> > > --- > > builtin/rebase.c | 16 +++++++++------- > > 1 file changed, 9 insertions(+), 7 deletions(-) > > One gripe I have in this change is that it used to be crystal clear > what the hardcoded default was (i.e. written in the initialization > data), but now you have to follow the program flow to see what the > hardcoded default is. True. We could adapt the macro to instead `xstrdup()` the default backend. But that feels a bit hidden, so I don't think this is a partiuclarly great option. An alternative would be to wrap initialization into a function `rebase_options_init()` that instead allocates the default backend string. We can then also create a `rebase_options_release()` counter part that releases its resources such that this whole thing becomes a bit more self contained. Patrick
Attachment:
signature.asc
Description: PGP signature