path: root/vcs-svn
diff options
authorDavid Barr <>2012-05-31 14:41:26 (GMT)
committerJonathan Nieder <>2012-07-06 04:26:52 (GMT)
commit4a1613194af218afb99be0e14af449e86852d06e (patch)
tree62d97f9ad6046361f81eeb99ca8ad072367858e9 /vcs-svn
parent4a5de8dd79879d737e172a5d7e4196c6bf99e57d (diff)
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 <> Signed-off-by: Jonathan Nieder <>
Diffstat (limited to 'vcs-svn')
1 files changed, 4 insertions, 4 deletions
diff --git a/vcs-svn/svndiff.c b/vcs-svn/svndiff.c
index c89d962..e810d0c 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;
- return -1;
+ return rv;
int svndiff0_apply(struct line_buffer *delta, off_t delta_len,