On Tue, Aug 14, 2018 at 09:30:57PM +0200, René Scharfe wrote: > > -static void batch_object_write(const char *obj_name, struct batch_options > > *opt, > > +static void batch_object_write(const char *obj_name, > > + struct strbuf *scratch, > > + struct batch_options *opt, > > struct expand_data *data) > > { > > - struct strbuf buf = STRBUF_INIT; > > We could also avoid passing that buffer around by making it static. I > shy away from adding static variables because the resulting code won't > be thread-safe, but that fear might be irrational, especially with > cat-file.
True, I didn't even think of that after your original got me in the mindset of passing the buffer down. It's not too bad to do it this way, and I agree with you that we are better avoiding static variables if we can. Five years ago I might have said the opposite, but we've cleaned up a lot of confusing hidden-static bits in that time. Let's not go in the opposite direction. :) -Peff