summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mg2d.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/mg2d.c b/mg2d.c
index 0ae651b..a1d6950 100644
--- a/mg2d.c
+++ b/mg2d.c
@@ -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)