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>
This commit is contained in:
parent
4a5de8dd79
commit
4a1613194a
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user