summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Ågren <martin.agren@gmail.com>2020-02-05 17:19:22 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-02-05 18:23:42 (GMT)
commit3e2feb0d64c994d343b42a62bd521fb5d6bdfe02 (patch)
tree2be948118054982014f771bdc2419f26885f77b1
parentd0654dc308b0ba76dd8ed7bbb33c8d8f7aacd783 (diff)
downloadgit-3e2feb0d64c994d343b42a62bd521fb5d6bdfe02.zip
git-3e2feb0d64c994d343b42a62bd521fb5d6bdfe02.tar.gz
git-3e2feb0d64c994d343b42a62bd521fb5d6bdfe02.tar.bz2
name-rev: rewrite create_or_update_name()
This code was moved straight out of name_rev(). As such, we inherited the "goto" to jump from an if into an else-if. We also inherited the fact that "nothing to do -- return NULL" is handled last. Rewrite the function to first handle the "nothing to do" case. Then we can handle the conditional allocation early before going on to populate the struct. No need for goto-ing. Signed-off-by: Martin Ågren <martin.agren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin/name-rev.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/builtin/name-rev.c b/builtin/name-rev.c
index 6b9e8c8..c2239ac 100644
--- a/builtin/name-rev.c
+++ b/builtin/name-rev.c
@@ -88,21 +88,21 @@ static struct rev_name *create_or_update_name(struct commit *commit,
{
struct rev_name *name = get_commit_rev_name(commit);
+ if (name && !is_better_name(name, taggerdate, distance, from_tag))
+ return NULL;
+
if (name == NULL) {
name = xmalloc(sizeof(*name));
set_commit_rev_name(commit, name);
- goto copy_data;
- } else if (is_better_name(name, taggerdate, distance, from_tag)) {
-copy_data:
- name->tip_name = tip_name;
- name->taggerdate = taggerdate;
- name->generation = generation;
- name->distance = distance;
- name->from_tag = from_tag;
-
- return name;
- } else
- return NULL;
+ }
+
+ name->tip_name = tip_name;
+ name->taggerdate = taggerdate;
+ name->generation = generation;
+ name->distance = distance;
+ name->from_tag = from_tag;
+
+ return name;
}
static void name_rev(struct commit *start_commit,