@@ -129,9 +129,6 @@ struct critnib {
129
129
uint64_t remove_count ;
130
130
131
131
struct os_mutex_t mutex ; /* writes/removes */
132
-
133
- umf_ba_pool_t * pool_nodes ;
134
- umf_ba_pool_t * pool_leaves ;
135
132
};
136
133
137
134
/*
@@ -191,25 +188,10 @@ struct critnib *critnib_new(void) {
191
188
goto err_free_critnib ;
192
189
}
193
190
194
- c -> pool_nodes = umf_ba_create (sizeof (struct critnib_node ));
195
- if (!c -> pool_nodes ) {
196
- goto err_util_mutex_destroy ;
197
- }
198
-
199
- c -> pool_leaves = umf_ba_create (sizeof (struct critnib_leaf ));
200
- if (!c -> pool_leaves ) {
201
- goto err_destroy_pool_nodes ;
202
- }
203
-
204
191
VALGRIND_HG_DRD_DISABLE_CHECKING (& c -> root , sizeof (c -> root ));
205
192
VALGRIND_HG_DRD_DISABLE_CHECKING (& c -> remove_count , sizeof (c -> remove_count ));
206
193
207
194
return c ;
208
-
209
- err_destroy_pool_nodes :
210
- umf_ba_destroy (c -> pool_nodes );
211
- err_util_mutex_destroy :
212
- util_mutex_destroy_not_free (& c -> mutex );
213
195
err_free_critnib :
214
196
umf_ba_global_free (c );
215
197
return NULL ;
@@ -220,15 +202,15 @@ struct critnib *critnib_new(void) {
220
202
*/
221
203
static void delete_node (struct critnib * c , struct critnib_node * __restrict n ) {
222
204
if (is_leaf (n )) {
223
- umf_ba_free ( c -> pool_leaves , to_leaf (n ));
205
+ umf_ba_global_free ( to_leaf (n ));
224
206
} else {
225
207
for (int i = 0 ; i < SLNODES ; i ++ ) {
226
208
if (n -> child [i ]) {
227
209
delete_node (c , n -> child [i ]);
228
210
}
229
211
}
230
212
231
- umf_ba_free ( c -> pool_nodes , n );
213
+ umf_ba_global_free ( n );
232
214
}
233
215
}
234
216
@@ -244,23 +226,21 @@ void critnib_delete(struct critnib *c) {
244
226
245
227
for (struct critnib_node * m = c -> deleted_node ; m ;) {
246
228
struct critnib_node * mm = m -> child [0 ];
247
- umf_ba_free ( c -> pool_nodes , m );
229
+ umf_ba_global_free ( m );
248
230
m = mm ;
249
231
}
250
232
251
233
for (struct critnib_leaf * k = c -> deleted_leaf ; k ;) {
252
234
struct critnib_leaf * kk = k -> value ;
253
- umf_ba_free ( c -> pool_leaves , k );
235
+ umf_ba_global_free ( k );
254
236
k = kk ;
255
237
}
256
238
257
239
for (int i = 0 ; i < DELETED_LIFE ; i ++ ) {
258
- umf_ba_free ( c -> pool_nodes , c -> pending_del_nodes [i ]);
259
- umf_ba_free ( c -> pool_leaves , c -> pending_del_leaves [i ]);
240
+ umf_ba_global_free ( c -> pending_del_nodes [i ]);
241
+ umf_ba_global_free ( c -> pending_del_leaves [i ]);
260
242
}
261
243
262
- umf_ba_destroy (c -> pool_nodes );
263
- umf_ba_destroy (c -> pool_leaves );
264
244
umf_ba_global_free (c );
265
245
}
266
246
@@ -288,7 +268,7 @@ static void free_node(struct critnib *__restrict c,
288
268
*/
289
269
static struct critnib_node * alloc_node (struct critnib * __restrict c ) {
290
270
if (!c -> deleted_node ) {
291
- return umf_ba_alloc ( c -> pool_nodes );
271
+ return umf_ba_global_alloc ( sizeof ( struct critnib_node ) );
292
272
}
293
273
294
274
struct critnib_node * n = c -> deleted_node ;
@@ -319,7 +299,7 @@ static void free_leaf(struct critnib *__restrict c,
319
299
*/
320
300
static struct critnib_leaf * alloc_leaf (struct critnib * __restrict c ) {
321
301
if (!c -> deleted_leaf ) {
322
- return umf_ba_alloc ( c -> pool_leaves );
302
+ return umf_ba_global_alloc ( sizeof ( struct critnib_leaf ) );
323
303
}
324
304
325
305
struct critnib_leaf * k = c -> deleted_leaf ;
0 commit comments