From: stevenj Date: Tue, 11 Sep 2007 22:42:53 +0000 (-0400) Subject: detect a couple more out-of-memory conditions in CRS X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=22f28ef9d3d50df4543a46189afe30ab30a938be;p=nlopt.git detect a couple more out-of-memory conditions in CRS darcs-hash:20070911224253-c8de0-8b324a9d0f66ad6e54fbf585353c002b2e4b4dce.gz --- diff --git a/crs/crs.c b/crs/crs.c index e5c0ba8..b07e564 100644 --- a/crs/crs.c +++ b/crs/crs.c @@ -172,7 +172,7 @@ static nlopt_result crs_init(crs_data *d, int n, const double *x, memcpy(d->ps + 1, x, sizeof(double) * n); d->ps[0] = f(n, x, NULL, f_data); stop->nevals++; - rb_tree_insert(&d->t, d->ps); + if (!rb_tree_insert(&d->t, d->ps)) return NLOPT_OUT_OF_MEMORY; if (d->ps[0] < stop->minf_max) return NLOPT_MINF_MAX_REACHED; if (nlopt_stop_evals(stop)) return NLOPT_MAXEVAL_REACHED; if (nlopt_stop_time(stop)) return NLOPT_MAXTIME_REACHED; @@ -187,7 +187,7 @@ static nlopt_result crs_init(crs_data *d, int n, const double *x, } k[0] = f(n, k + 1, NULL, f_data); stop->nevals++; - rb_tree_insert(&d->t, k); + if (!rb_tree_insert(&d->t, k)) return NLOPT_OUT_OF_MEMORY; if (k[0] < stop->minf_max) return NLOPT_MINF_MAX_REACHED; if (nlopt_stop_evals(stop)) return NLOPT_MAXEVAL_REACHED; if (nlopt_stop_time(stop)) return NLOPT_MAXTIME_REACHED;