@@ -464,26 +464,19 @@ void umfTrackingMemoryProviderGetUpstreamProvider(
464
464
}
465
465
466
466
umf_memory_tracker_handle_t umfMemoryTrackerCreate (void ) {
467
- umf_ba_linear_pool_t * pool_linear =
468
- umf_ba_linear_create (0 /* minimum pool size */ );
469
- if (!pool_linear ) {
467
+ umf_memory_tracker_handle_t handle =
468
+ (umf_memory_tracker_handle_t )umf_ba_global_alloc (
469
+ sizeof (struct umf_memory_tracker_t ));
470
+ if (!handle ) {
470
471
return NULL ;
471
472
}
472
473
473
474
umf_ba_pool_t * tracker_allocator =
474
475
umf_ba_create (sizeof (struct tracker_value_t ));
475
476
if (!tracker_allocator ) {
476
- goto err_destroy_pool_linear ;
477
- }
478
-
479
- umf_memory_tracker_handle_t handle =
480
- (umf_memory_tracker_handle_t )umf_ba_linear_alloc (
481
- pool_linear , sizeof (struct umf_memory_tracker_t ));
482
- if (!handle ) {
483
- goto err_destroy_tracker_allocator ;
477
+ goto err_free_handle ;
484
478
}
485
479
486
- handle -> pool_linear = pool_linear ;
487
480
handle -> tracker_allocator = tracker_allocator ;
488
481
489
482
void * mutex_ptr = util_mutex_init (& handle -> splitMergeMutex );
@@ -502,8 +495,8 @@ umf_memory_tracker_handle_t umfMemoryTrackerCreate(void) {
502
495
util_mutex_destroy_not_free (& handle -> splitMergeMutex );
503
496
err_destroy_tracker_allocator :
504
497
umf_ba_destroy (tracker_allocator );
505
- err_destroy_pool_linear :
506
- umf_ba_linear_destroy ( pool_linear );
498
+ err_free_handle :
499
+ umf_ba_global_free ( handle , sizeof ( struct umf_memory_tracker_t ) );
507
500
return NULL ;
508
501
}
509
502
@@ -519,5 +512,5 @@ void umfMemoryTrackerDestroy(umf_memory_tracker_handle_t handle) {
519
512
critnib_delete (handle -> map );
520
513
util_mutex_destroy_not_free (& handle -> splitMergeMutex );
521
514
umf_ba_destroy (handle -> tracker_allocator );
522
- umf_ba_linear_destroy (handle -> pool_linear );
515
+ umf_ba_global_free (handle , sizeof ( struct umf_memory_tracker_t ) );
523
516
}
0 commit comments