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:
parent
208247adb9
commit
df5d43be1f
13
commit.c
13
commit.c
@ -137,12 +137,8 @@ struct commit_graft *read_graft_line(char *buf, int len)
|
|||||||
buf[--len] = '\0';
|
buf[--len] = '\0';
|
||||||
if (buf[0] == '#' || buf[0] == '\0')
|
if (buf[0] == '#' || buf[0] == '\0')
|
||||||
return NULL;
|
return NULL;
|
||||||
if ((len + 1) % 41) {
|
if ((len + 1) % 41)
|
||||||
bad_graft_data:
|
goto bad_graft_data;
|
||||||
error("bad graft data: %s", buf);
|
|
||||||
free(graft);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
i = (len + 1) / 41 - 1;
|
i = (len + 1) / 41 - 1;
|
||||||
graft = xmalloc(sizeof(*graft) + 20 * i);
|
graft = xmalloc(sizeof(*graft) + 20 * i);
|
||||||
graft->nr_parent = i;
|
graft->nr_parent = i;
|
||||||
@ -155,6 +151,11 @@ struct commit_graft *read_graft_line(char *buf, int len)
|
|||||||
goto bad_graft_data;
|
goto bad_graft_data;
|
||||||
}
|
}
|
||||||
return graft;
|
return graft;
|
||||||
|
|
||||||
|
bad_graft_data:
|
||||||
|
error("bad graft data: %s", buf);
|
||||||
|
free(graft);
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int read_graft_file(const char *graft_file)
|
static int read_graft_file(const char *graft_file)
|
||||||
|
Loading…
Reference in New Issue
Block a user