diff options
author | David Barr <davidbarr@google.com> | 2012-06-01 00:41:26 +1000 |
---|---|---|
committer | Jonathan Nieder <jrnieder@gmail.com> | 2012-07-05 23:26:52 -0500 |
commit | 4a1613194af218afb99be0e14af449e86852d06e (patch) | |
tree | 62d97f9ad6046361f81eeb99ca8ad072367858e9 | |
parent | vcs-svn: avoid self-assignment in dummy initialization of pre_off (diff) | |
download | tgif-4a1613194af218afb99be0e14af449e86852d06e.tar.xz |
vcs-svn: simplify cleanup in apply_one_window
Currently the cleanup code looks like this:
free resources
return 0;
error_out:
free resources
return -1;
Avoid duplicating the "free resources" part by keeping the return
value in a variable and sharing code between the success and
exceptional case:
ret = 0;
out:
free resources
return ret;
Noticed in the svn-dump-fast-export project, where using the error()
macro in void context produces a warning.
Signed-off-by: David Barr <davidbarr@google.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
-rw-r--r-- | vcs-svn/svndiff.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/vcs-svn/svndiff.c b/vcs-svn/svndiff.c index c89d9623f4..e810d0c3ff 100644 --- a/vcs-svn/svndiff.c +++ b/vcs-svn/svndiff.c @@ -258,6 +258,7 @@ static int apply_window_in_core(struct window *ctx) static int apply_one_window(struct line_buffer *delta, off_t *delta_len, struct sliding_view *preimage, FILE *out) { + int rv = -1; struct window ctx = WINDOW_INIT(preimage); size_t out_len; size_t instructions_len; @@ -275,16 +276,15 @@ static int apply_one_window(struct line_buffer *delta, off_t *delta_len, if (apply_window_in_core(&ctx)) goto error_out; if (ctx.out.len != out_len) { - error("invalid delta: incorrect postimage length"); + rv = error("invalid delta: incorrect postimage length"); goto error_out; } if (write_strbuf(&ctx.out, out)) goto error_out; - window_release(&ctx); - return 0; + rv = 0; error_out: window_release(&ctx); - return -1; + return rv; } int svndiff0_apply(struct line_buffer *delta, off_t delta_len, |