Minor refactoring to reduce the number of returns in the switch case handling the "edit_description" option, so the calls to strbuf_release can also be reduced. New resources to be added also do not need to be released in multiple places. Signed-off-by: Rubén Justo <rjusto@xxxxxxxxx> --- builtin/branch.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/builtin/branch.c b/builtin/branch.c index 55cd9a6e99..b1f6519cd9 100644 --- a/builtin/branch.c +++ b/builtin/branch.c @@ -791,6 +791,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix) } else if (edit_description) { const char *branch_name; struct strbuf branch_ref = STRBUF_INIT; + int ret = 0; if (!argc) { if (filter.detached) @@ -803,19 +804,17 @@ int cmd_branch(int argc, const char **argv, const char *prefix) strbuf_addf(&branch_ref, "refs/heads/%s", branch_name); if (!ref_exists(branch_ref.buf)) { - strbuf_release(&branch_ref); - if (!argc) - return error(_("No commit on branch '%s' yet."), + ret = error(_("No commit on branch '%s' yet."), branch_name); else - return error(_("No branch named '%s'."), + ret = error(_("No branch named '%s'."), branch_name); - } - strbuf_release(&branch_ref); + } else if (edit_branch_description(branch_name)) + ret = 1; - if (edit_branch_description(branch_name)) - return 1; + strbuf_release(&branch_ref); + return ret; } else if (copy) { if (!argc) die(_("branch name required")); -- 2.36.1