grep: simplify grep_oid and grep_file
authorRasmus Villemoes <rv@rasmusvillemoes.dk>
Fri, 23 Feb 2018 14:47:57 +0000 (15:47 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 23 Feb 2018 20:23:50 +0000 (12:23 -0800)
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>
builtin/grep.c
index aad422bb6481cac4a37f40845bba533c8f90e285..9a8e4fadadb89e1448f7d8a507673836ed23bc30 100644 (file)
@@ -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);