diff options
Diffstat (limited to 'mg2d.c')
-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) |