@@ -40,8 +40,7 @@ int nanoflann_neighbors(vector<scalar_t>& queries, vector<scalar_t>& supports,
4040 my_kd_tree_t ;
4141
4242 // Pointer to trees
43- my_kd_tree_t * index;
44- index = new my_kd_tree_t (3 , pcd, tree_params);
43+ std::unique_ptr<my_kd_tree_t > index (new my_kd_tree_t (3 , pcd, tree_params));
4544 index->buildIndex ();
4645 // Search neigbors indices
4746 // ***********************
@@ -156,11 +155,9 @@ int batch_nanoflann_neighbors(vector<scalar_t>& queries,
156155 PointCloud<scalar_t >, 3 >
157156 my_kd_tree_t ;
158157
159- // Pointer to trees
160- my_kd_tree_t * index;
161158 // Build KDTree for the first batch element
162- current_cloud.set_batch (supports, s_batches[b], s_batches[b + 1 ]);
163- index = new my_kd_tree_t (3 , current_cloud, tree_params);
159+ current_cloud.set_batch (supports, s_batches[b], s_batches[b+ 1 ]);
160+ std::unique_ptr< my_kd_tree_t > index ( new my_kd_tree_t (3 , current_cloud, tree_params) );
164161 index->buildIndex ();
165162 // Search neigbors indices
166163 // ***********************
@@ -177,10 +174,9 @@ int batch_nanoflann_neighbors(vector<scalar_t>& queries,
177174 current_cloud.pts .clear ();
178175 if (s_batches[b] < s_batches[b + 1 ])
179176 current_cloud.set_batch (supports, s_batches[b], s_batches[b + 1 ]);
180- // Build KDTree of the current element of the batch
181- delete index;
182177
183- index = new my_kd_tree_t (3 , current_cloud, tree_params);
178+ // Build KDTree of the current element of the batch
179+ index.reset (new my_kd_tree_t (3 , current_cloud, tree_params));
184180 index->buildIndex ();
185181 }
186182
@@ -233,7 +229,7 @@ int batch_nanoflann_neighbors(vector<scalar_t>& queries,
233229
234230 i0++;
235231 }
236- delete index;
232+ index. reset () ;
237233 } else if (mode == 1 ) {
238234 int size = 0 ; // total number of edges
239235 for (auto & inds_dists : all_inds_dists) {
0 commit comments