@@ -40,8 +40,7 @@ int nanoflann_neighbors(vector<scalar_t>& queries, vector<scalar_t>& supports,
40
40
my_kd_tree_t ;
41
41
42
42
// 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));
45
44
index->buildIndex ();
46
45
// Search neigbors indices
47
46
// ***********************
@@ -156,11 +155,9 @@ int batch_nanoflann_neighbors(vector<scalar_t>& queries,
156
155
PointCloud<scalar_t >, 3 >
157
156
my_kd_tree_t ;
158
157
159
- // Pointer to trees
160
- my_kd_tree_t * index;
161
158
// 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) );
164
161
index->buildIndex ();
165
162
// Search neigbors indices
166
163
// ***********************
@@ -177,10 +174,9 @@ int batch_nanoflann_neighbors(vector<scalar_t>& queries,
177
174
current_cloud.pts .clear ();
178
175
if (s_batches[b] < s_batches[b + 1 ])
179
176
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;
182
177
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));
184
180
index->buildIndex ();
185
181
}
186
182
@@ -233,7 +229,7 @@ int batch_nanoflann_neighbors(vector<scalar_t>& queries,
233
229
234
230
i0++;
235
231
}
236
- delete index;
232
+ index. reset () ;
237
233
} else if (mode == 1 ) {
238
234
int size = 0 ; // total number of edges
239
235
for (auto & inds_dists : all_inds_dists) {
0 commit comments