Commit 1b8c2589 authored by Ilya Lavrenov's avatar Ilya Lavrenov

fixed memory leak in GBTrees

parent 94cf5430
...@@ -1292,13 +1292,18 @@ CvGBTrees::calc_error( CvMLData* _data, int type, std::vector<float> *resp ) ...@@ -1292,13 +1292,18 @@ CvGBTrees::calc_error( CvMLData* _data, int type, std::vector<float> *resp )
return -FLT_MAX; return -FLT_MAX;
float* pred_resp = 0; float* pred_resp = 0;
bool needsFreeing = false;
if (resp) if (resp)
{ {
resp->resize(n); resp->resize(n);
pred_resp = &((*resp)[0]); pred_resp = &((*resp)[0]);
} }
else else
{
pred_resp = new float[n]; pred_resp = new float[n];
needsFreeing = true;
}
Sample_predictor predictor = Sample_predictor(this, pred_resp, _data->get_values(), Sample_predictor predictor = Sample_predictor(this, pred_resp, _data->get_values(),
_data->get_missing(), _sample_idx); _data->get_missing(), _sample_idx);
...@@ -1331,6 +1336,9 @@ CvGBTrees::calc_error( CvMLData* _data, int type, std::vector<float> *resp ) ...@@ -1331,6 +1336,9 @@ CvGBTrees::calc_error( CvMLData* _data, int type, std::vector<float> *resp )
err = err / (float)n; err = err / (float)n;
} }
if (needsFreeing)
delete[]pred_resp;
return err; return err;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment