summaryrefslogtreecommitdiff
path: root/builtin/grep.c
diff options
context:
space:
mode:
authorRasmus Villemoes <rv@rasmusvillemoes.dk>2018-02-23 14:47:57 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-02-23 20:23:50 (GMT)
commit38ef24dccfb696393d2e8e701bf2f81c9e6275e2 (patch)
tree437d07d912e8f2966dc52aab67e8c9c9af15b8e5 /builtin/grep.c
parente2e05d619a71ae2c06ebd3c661260bf4b5039a93 (diff)
downloadgit-38ef24dccfb696393d2e8e701bf2f81c9e6275e2.zip
git-38ef24dccfb696393d2e8e701bf2f81c9e6275e2.tar.gz
git-38ef24dccfb696393d2e8e701bf2f81c9e6275e2.tar.bz2
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/grep.c')
-rw-r--r--builtin/grep.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/builtin/grep.c b/builtin/grep.c
index aad422b..9a8e4fa 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);