зеркало из https://github.com/microsoft/git.git
commit.c: Remove backward goto in read_craft_line()
Bad graft data is noticed in several places in read_graft_line(), and in each case we go back to the first site of detection. It in general is a better style to have an exception handling out of line from the main codepath and make error codepath jump forward. Signed-off-by: Ralf Thielow <ralf.thielow@googlemail.com> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
208247adb9
Коммит
df5d43be1f
13
commit.c
13
commit.c
|
@ -137,12 +137,8 @@ struct commit_graft *read_graft_line(char *buf, int len)
|
|||
buf[--len] = '\0';
|
||||
if (buf[0] == '#' || buf[0] == '\0')
|
||||
return NULL;
|
||||
if ((len + 1) % 41) {
|
||||
bad_graft_data:
|
||||
error("bad graft data: %s", buf);
|
||||
free(graft);
|
||||
return NULL;
|
||||
}
|
||||
if ((len + 1) % 41)
|
||||
goto bad_graft_data;
|
||||
i = (len + 1) / 41 - 1;
|
||||
graft = xmalloc(sizeof(*graft) + 20 * i);
|
||||
graft->nr_parent = i;
|
||||
|
@ -155,6 +151,11 @@ struct commit_graft *read_graft_line(char *buf, int len)
|
|||
goto bad_graft_data;
|
||||
}
|
||||
return graft;
|
||||
|
||||
bad_graft_data:
|
||||
error("bad graft data: %s", buf);
|
||||
free(graft);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static int read_graft_file(const char *graft_file)
|
||||
|
|
Загрузка…
Ссылка в новой задаче