diff options
author | Anton Khirnov <anton@khirnov.net> | 2019-03-26 17:16:25 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2019-03-26 17:16:25 +0100 |
commit | 9dc3b1d7f2a3cb2a072b62370ea192b4ebad9a36 (patch) | |
tree | dce61ae26b345a2dadfcca8e1928e03c35f58c72 | |
parent | f65c33ac906c97b12ee7304f5625b9812fe10e09 (diff) |
mg2d: do not leak the diff_coeffs interpolator
-rw-r--r-- | mg2d.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -250,7 +250,7 @@ static int restrict_diff_coeffs(MG2DContext *ctx, enum GridTransferOperator op, { MG2DInternal *priv = ctx->priv; GridTransferContext *tc; - int ret; + int ret = 0; tc = mg2di_gt_alloc(op); if (!tc) @@ -271,15 +271,18 @@ static int restrict_diff_coeffs(MG2DContext *ctx, enum GridTransferOperator op, ret = mg2di_gt_init(tc); if (ret < 0) - return ret; + goto finish; for (int i = 0; i < MG2D_DIFF_COEFF_NB; i++) { ret = mg2di_gt_transfer(tc, dst->diff_coeffs[i], src->diff_coeffs[i]); if (ret < 0) - return ret; + goto finish; } - return 0; +finish: + mg2di_gt_free(&tc); + + return ret; } static double findmax(double *arr, size_t size[2], ptrdiff_t stride) |