From 3f458c6eb114bd46ce7f08b8ca471822ea16d26e Mon Sep 17 00:00:00 2001
From: Pierre-Emmanuel Viel <p.emmanuel.viel@gmail.com>
Date: Fri, 3 Jan 2014 13:16:36 +0100
Subject: [PATCH] Fix: freeing previous elements has to be done before loading
 new parameters to avoid trying to delete unexisting objects if arrays size
 was modified

---
 .../opencv2/flann/hierarchical_clustering_index.h    | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h b/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h
index c27b64834..b511ee908 100644
--- a/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h
+++ b/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h
@@ -414,12 +414,6 @@ public:
 
     void loadIndex(FILE* stream)
     {
-        load_value(stream, branching_);
-        load_value(stream, trees_);
-        load_value(stream, centers_init_);
-        load_value(stream, leaf_size_);
-        load_value(stream, memoryCounter);
-
         free_elements();
 
         if (root!=NULL) {
@@ -430,6 +424,12 @@ public:
             delete[] indices;
         }
 
+        load_value(stream, branching_);
+        load_value(stream, trees_);
+        load_value(stream, centers_init_);
+        load_value(stream, leaf_size_);
+        load_value(stream, memoryCounter);
+
         indices = new int*[trees_];
         root = new NodePtr[trees_];
         for (int i=0; i<trees_; ++i) {