aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mg2d.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/mg2d.c b/mg2d.c
index 5d089b8..061ae91 100644
--- a/mg2d.c
+++ b/mg2d.c
@@ -471,7 +471,9 @@ int mg2d_solve(MG2DContext *ctx)
res_prev = s_root->residual_max;
for (int i = 0; i < ctx->maxiter; i++) {
- mg_solve_subgrid(ctx, root);
+ ret = mg_solve_subgrid(ctx, root);
+ if (ret < 0)
+ goto fail;
res_cur = s_root->residual_max;
@@ -491,8 +493,10 @@ int mg2d_solve(MG2DContext *ctx)
res_prev = res_cur;
}
+ ret = -EDOM;
+fail:
mg2di_log(&priv->logger, MG2D_LOG_ERROR, "The solver failed to converge\n");
- return -EDOM;
+ return ret;
}
static void mg_level_free(MG2DLevel **plevel)