diff --git a/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h b/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h index d830bc6a00..2937509924 100644 --- a/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h +++ b/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h @@ -548,7 +548,7 @@ public: void findNeighbors(ResultSet& result, const ElementType* vec, const SearchParams& searchParams) CV_OVERRIDE { - int maxChecks = get_param(searchParams,"checks",32); + const int maxChecks = get_param(searchParams,"checks",32); // Priority queue storing intermediate branches in the best-bin-first search Heap* heap = new Heap((int)size_); @@ -557,6 +557,8 @@ public: int checks = 0; for (int i=0; i= maxChecks) && result.full()) + break; } BranchSt branch; @@ -748,8 +750,8 @@ private: Heap* heap, std::vector& checked) { if (node->childs==NULL) { - if (checks>=maxChecks) { - if (result.full()) return; + if ((checks>=maxChecks) && result.full()) { + return; } for (int i=0; isize; ++i) { int index = node->indices[i];