Jeff King <peff@xxxxxxxx> writes: > I think this makes sense. It does blur the memory ownership lines of the > grep_source, though. Can we make that more clear with a comment here: > >> + grep_source_init(&gs, GREP_SOURCE_OID, pathbuf.buf, path, oid); >> + >> #ifndef NO_PTHREADS >> if (num_threads) { >> - add_work(opt, GREP_SOURCE_OID, pathbuf.buf, path, oid); >> + add_work(opt, &gs); >> strbuf_release(&pathbuf); >> return 0; >> } else > > like: > > /* leak grep_source, whose fields are now owned by add_work() */ > > or something? We could even memset() it back to all-zeroes to avoid an > accidental call to grep_source_clear(), but that's probably unnecessary > if we have a comment. I share the same uneasiness about the fuzzy memory ownership this change brings in. Thanks for suggesting improvements.