Skip to content

Commit 766f9e3

Browse files
szedergitster
authored andcommitted
name-rev: extract creating/updating a 'struct name_rev' into a helper
In a later patch in this series we'll want to do this in two places. Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent d59fc83 commit 766f9e3

File tree

1 file changed

+27
-13
lines changed

1 file changed

+27
-13
lines changed

builtin/name-rev.c

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,36 @@ static int is_better_name(struct rev_name *name,
7979
return 0;
8080
}
8181

82+
static struct rev_name *create_or_update_name(struct commit *commit,
83+
const char *tip_name,
84+
timestamp_t taggerdate,
85+
int generation, int distance,
86+
int from_tag)
87+
{
88+
struct rev_name *name = get_commit_rev_name(commit);
89+
90+
if (name == NULL) {
91+
name = xmalloc(sizeof(*name));
92+
set_commit_rev_name(commit, name);
93+
goto copy_data;
94+
} else if (is_better_name(name, taggerdate, distance, from_tag)) {
95+
copy_data:
96+
name->tip_name = tip_name;
97+
name->taggerdate = taggerdate;
98+
name->generation = generation;
99+
name->distance = distance;
100+
name->from_tag = from_tag;
101+
102+
return name;
103+
} else
104+
return NULL;
105+
}
106+
82107
static void name_rev(struct commit *commit,
83108
const char *tip_name, timestamp_t taggerdate,
84109
int generation, int distance, int from_tag,
85110
int deref)
86111
{
87-
struct rev_name *name = get_commit_rev_name(commit);
88112
struct commit_list *parents;
89113
int parent_number = 1;
90114
char *to_free = NULL;
@@ -101,18 +125,8 @@ static void name_rev(struct commit *commit,
101125
die("generation: %d, but deref?", generation);
102126
}
103127

104-
if (name == NULL) {
105-
name = xmalloc(sizeof(*name));
106-
set_commit_rev_name(commit, name);
107-
goto copy_data;
108-
} else if (is_better_name(name, taggerdate, distance, from_tag)) {
109-
copy_data:
110-
name->tip_name = tip_name;
111-
name->taggerdate = taggerdate;
112-
name->generation = generation;
113-
name->distance = distance;
114-
name->from_tag = from_tag;
115-
} else {
128+
if (!create_or_update_name(commit, tip_name, taggerdate, generation,
129+
distance, from_tag)) {
116130
free(to_free);
117131
return;
118132
}

0 commit comments

Comments
 (0)