[PATCH 3/9] vcs-svn: simplify cleanup in apply_one_window
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- Jul 6, 2012, 17:18 UTC
- Message-ID
- <20120706171759.GD31001@burratino>
- In-Reply-To
- <20120706171040.GA31001@burratino>
From: David Barr <davidbarr@google.com> Date: Fri, 1 Jun 2012 00:41:26 +1000
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> --- Changes since v2: - new description
vcs-svn/svndiff.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/vcs-svn/svndiff.c b/vcs-svn/svndiff.c index c89d9623..e810d0c3 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,
-- 1.7.10.4