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>maint
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,
|
static int apply_one_window(struct line_buffer *delta, off_t *delta_len,
|
||||||
struct sliding_view *preimage, FILE *out)
|
struct sliding_view *preimage, FILE *out)
|
||||||
{
|
{
|
||||||
|
int rv = -1;
|
||||||
struct window ctx = WINDOW_INIT(preimage);
|
struct window ctx = WINDOW_INIT(preimage);
|
||||||
size_t out_len;
|
size_t out_len;
|
||||||
size_t instructions_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))
|
if (apply_window_in_core(&ctx))
|
||||||
goto error_out;
|
goto error_out;
|
||||||
if (ctx.out.len != out_len) {
|
if (ctx.out.len != out_len) {
|
||||||
error("invalid delta: incorrect postimage length");
|
rv = error("invalid delta: incorrect postimage length");
|
||||||
goto error_out;
|
goto error_out;
|
||||||
}
|
}
|
||||||
if (write_strbuf(&ctx.out, out))
|
if (write_strbuf(&ctx.out, out))
|
||||||
goto error_out;
|
goto error_out;
|
||||||
window_release(&ctx);
|
rv = 0;
|
||||||
return 0;
|
|
||||||
error_out:
|
error_out:
|
||||||
window_release(&ctx);
|
window_release(&ctx);
|
||||||
return -1;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
int svndiff0_apply(struct line_buffer *delta, off_t delta_len,
|
int svndiff0_apply(struct line_buffer *delta, off_t delta_len,
|
||||||
|
|
Loading…
Reference in New Issue