summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar David Barr <davidbarr@google.com>2012-06-01 00:41:26 +1000
committerLibravatar Jonathan Nieder <jrnieder@gmail.com>2012-07-05 23:26:52 -0500
commit4a1613194af218afb99be0e14af449e86852d06e (patch)
tree62d97f9ad6046361f81eeb99ca8ad072367858e9
parentvcs-svn: avoid self-assignment in dummy initialization of pre_off (diff)
downloadtgif-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.c8
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,