merge-file: refactor for subsequent memory leak fix
Refactor the code in builtin/merge-file.c to: * Use the initializer to zero out "mmfs", and use modern C syntax for the rest. * Refactor the the inner loop to use a variable and "if/else if" pattern followed by "return". This will make a change to change it to a "goto cleanup" pattern smaller. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
d90dafbe31
commit
480a0e30a7
@ -25,10 +25,10 @@ static int label_cb(const struct option *opt, const char *arg, int unset)
|
|||||||
|
|
||||||
int cmd_merge_file(int argc, const char **argv, const char *prefix)
|
int cmd_merge_file(int argc, const char **argv, const char *prefix)
|
||||||
{
|
{
|
||||||
const char *names[3] = { NULL, NULL, NULL };
|
const char *names[3] = { 0 };
|
||||||
mmfile_t mmfs[3];
|
mmfile_t mmfs[3] = { 0 };
|
||||||
mmbuffer_t result = {NULL, 0};
|
mmbuffer_t result = { 0 };
|
||||||
xmparam_t xmp = {{0}};
|
xmparam_t xmp = { 0 };
|
||||||
int ret = 0, i = 0, to_stdout = 0;
|
int ret = 0, i = 0, to_stdout = 0;
|
||||||
int quiet = 0;
|
int quiet = 0;
|
||||||
struct option options[] = {
|
struct option options[] = {
|
||||||
@ -71,21 +71,23 @@ int cmd_merge_file(int argc, const char **argv, const char *prefix)
|
|||||||
|
|
||||||
for (i = 0; i < 3; i++) {
|
for (i = 0; i < 3; i++) {
|
||||||
char *fname;
|
char *fname;
|
||||||
int ret;
|
mmfile_t *mmf = mmfs + i;
|
||||||
|
|
||||||
if (!names[i])
|
if (!names[i])
|
||||||
names[i] = argv[i];
|
names[i] = argv[i];
|
||||||
|
|
||||||
fname = prefix_filename(prefix, argv[i]);
|
fname = prefix_filename(prefix, argv[i]);
|
||||||
ret = read_mmfile(mmfs + i, fname);
|
|
||||||
|
if (read_mmfile(mmf, fname))
|
||||||
|
ret = -1;
|
||||||
|
else if (mmf->size > MAX_XDIFF_SIZE ||
|
||||||
|
buffer_is_binary(mmf->ptr, mmf->size))
|
||||||
|
ret = error("Cannot merge binary files: %s",
|
||||||
|
argv[i]);
|
||||||
|
|
||||||
free(fname);
|
free(fname);
|
||||||
if (ret)
|
if (ret)
|
||||||
return -1;
|
return ret;
|
||||||
|
|
||||||
if (mmfs[i].size > MAX_XDIFF_SIZE ||
|
|
||||||
buffer_is_binary(mmfs[i].ptr, mmfs[i].size))
|
|
||||||
return error("Cannot merge binary files: %s",
|
|
||||||
argv[i]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
xmp.ancestor = names[1];
|
xmp.ancestor = names[1];
|
||||||
|
Loading…
Reference in New Issue
Block a user