diff --git a/modules/flann/src/miniflann.cpp b/modules/flann/src/miniflann.cpp index 7d81438dbc..b7661752c0 100644 --- a/modules/flann/src/miniflann.cpp +++ b/modules/flann/src/miniflann.cpp @@ -318,7 +318,19 @@ buildIndex_(void*& index, const Mat& data, const IndexParams& params, const Dist ::cvflann::Matrix dataset((ElementType*)data.data, data.rows, data.cols); IndexType* _index = new IndexType(dataset, get_params(params), dist); - _index->buildIndex(); + + try + { + _index->buildIndex(); + } + catch (...) + { + delete _index; + _index = NULL; + + throw; + } + index = _index; }