diff options
author | Rasmus Villemoes <rv@rasmusvillemoes.dk> | 2018-02-23 15:47:57 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-02-23 12:23:50 -0800 |
commit | 38ef24dccfb696393d2e8e701bf2f81c9e6275e2 (patch) | |
tree | 437d07d912e8f2966dc52aab67e8c9c9af15b8e5 /builtin | |
parent | grep: move grep_source_init outside critical section (diff) | |
download | tgif-38ef24dccfb696393d2e8e701bf2f81c9e6275e2.tar.xz |
grep: simplify grep_oid and grep_file
In the NO_PTHREADS or !num_threads case, this doesn't change
anything. In the threaded case, note that grep_source_init duplicates
its third argument, so there is no need to keep [path]buf.buf alive
across the call of add_work().
Signed-off-by: Rasmus Villemoes <rv@rasmusvillemoes.dk>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/grep.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/builtin/grep.c b/builtin/grep.c index aad422bb64..9a8e4fadad 100644 --- a/builtin/grep.c +++ b/builtin/grep.c @@ -326,6 +326,7 @@ static int grep_oid(struct grep_opt *opt, const struct object_id *oid, } grep_source_init(&gs, GREP_SOURCE_OID, pathbuf.buf, path, oid); + strbuf_release(&pathbuf); #ifndef NO_PTHREADS if (num_threads) { @@ -334,14 +335,12 @@ static int grep_oid(struct grep_opt *opt, const struct object_id *oid, * its fields, so do not call grep_source_clear() */ add_work(opt, &gs); - strbuf_release(&pathbuf); return 0; } else #endif { int hit; - strbuf_release(&pathbuf); hit = grep_source(opt, &gs); grep_source_clear(&gs); @@ -360,6 +359,7 @@ static int grep_file(struct grep_opt *opt, const char *filename) strbuf_addstr(&buf, filename); grep_source_init(&gs, GREP_SOURCE_FILE, buf.buf, filename, filename); + strbuf_release(&buf); #ifndef NO_PTHREADS if (num_threads) { @@ -368,14 +368,12 @@ static int grep_file(struct grep_opt *opt, const char *filename) * its fields, so do not call grep_source_clear() */ add_work(opt, &gs); - strbuf_release(&buf); return 0; } else #endif { int hit; - strbuf_release(&buf); hit = grep_source(opt, &gs); grep_source_clear(&gs); |