checkout: die_if_checked_out: simplify strbuf management
authorEric Sunshine <sunshine@sunshineco.com>
Fri, 17 Jul 2015 22:59:59 +0000 (18:59 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 20 Jul 2015 18:29:24 +0000 (11:29 -0700)
There is no reason to keep the strbuf active long after its last use.
By releasing it as early as possible, resource management is simplified
and there is less worry about future changes resulting in a leak.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/checkout.c
index 1992c41d484e0755858bbe0be80618f3322b8349..c36bf8acfbdec8e668b3c698d4e1aa5346419539 100644 (file)
@@ -924,17 +924,16 @@ static void die_if_checked_out(struct branch_info *new)
        check_linked_checkout(new, NULL);
 
        strbuf_addf(&path, "%s/worktrees", get_git_common_dir());
        check_linked_checkout(new, NULL);
 
        strbuf_addf(&path, "%s/worktrees", get_git_common_dir());
-       if ((dir = opendir(path.buf)) == NULL) {
-               strbuf_release(&path);
+       dir = opendir(path.buf);
+       strbuf_release(&path);
+       if (!dir)
                return;
                return;
-       }
 
        while ((d = readdir(dir)) != NULL) {
                if (!strcmp(d->d_name, ".") || !strcmp(d->d_name, ".."))
                        continue;
                check_linked_checkout(new, d->d_name);
        }
 
        while ((d = readdir(dir)) != NULL) {
                if (!strcmp(d->d_name, ".") || !strcmp(d->d_name, ".."))
                        continue;
                check_linked_checkout(new, d->d_name);
        }
-       strbuf_release(&path);
        closedir(dir);
 }
 
        closedir(dir);
 }