Patrick Steinhardt <ps@xxxxxx> writes: > We sometimes pass the refatble write options as value and sometimes as a > pointer. This is quite confusing and makes the reader wonder whether the > options get modified sometimes. > > In fact, `reftable_new_writer()` does cause the caller-provided options > to get updated when some values aren't set up. This is quite unexpected, > but didn't cause any harm until now. > > Refactor the code to consistently pass the options as a value so that > they are local to the subsystem they are being passed into so that we > can avoid weirdness like this. Turning pass-by-reference to pass-by-value of a large structure is a rather huge hammer to ensure that the structure is not modified (qualifying the pointer with "const" is). Consistency is good, but I am not sure offhand if this is making things consistent in a good way.