@@ -644,20 +644,29 @@ static void free_slab(void *unused, void *slab) {
644
644
}
645
645
}
646
646
647
+ static const umf_disjoint_pool_params_t default_params = {
648
+ .slab_min_size = 64 * 1024 , // 64KB default
649
+ .max_poolable_size = 2 * 1024 * 1024 , // 2MB default
650
+ .capacity = 4 , // default
651
+ .min_bucket_size = 8 , // default
652
+ .cur_pool_size = 0 ,
653
+ .pool_trace = 0 ,
654
+ .shared_limits = NULL ,
655
+ .name = "disjoint" };
656
+
647
657
umf_result_t disjoint_pool_initialize (umf_memory_provider_handle_t provider ,
648
658
const void * params , void * * ppPool ) {
649
- // TODO set defaults when user pass the NULL as params
650
- if (!provider || !params || !ppPool ) {
659
+ if (!provider || !ppPool ) {
651
660
return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
652
661
}
653
662
654
- const umf_disjoint_pool_params_t * dp_params = params ;
663
+ const umf_disjoint_pool_params_t * dp_params ;
655
664
656
- // min_bucket_size parameter must be a power of 2 for bucket sizes
657
- // to generate correctly.
658
- if (! dp_params -> min_bucket_size ||
659
- ! IS_POWER_OF_2 ( dp_params -> min_bucket_size )) {
660
- return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
665
+ // If params is NULL, use default values
666
+ if (! params ) {
667
+ dp_params = & default_params ;
668
+ } else {
669
+ dp_params = params ;
661
670
}
662
671
663
672
disjoint_pool_t * disjoint_pool =
@@ -1102,18 +1111,7 @@ umfDisjointPoolParamsCreate(umf_disjoint_pool_params_handle_t *hParams) {
1102
1111
return UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY ;
1103
1112
}
1104
1113
1105
- * params = (umf_disjoint_pool_params_t ){
1106
- .slab_min_size = 64 * 1024 , // 64K
1107
- .max_poolable_size = 2 * 1024 * 1024 , // 2MB
1108
- .capacity = 4 ,
1109
- .min_bucket_size = UMF_DISJOINT_POOL_MIN_BUCKET_DEFAULT_SIZE ,
1110
- .cur_pool_size = 0 ,
1111
- .pool_trace = 0 ,
1112
- .shared_limits = NULL ,
1113
- };
1114
-
1115
- strncpy (params -> name , DEFAULT_NAME , sizeof (params -> name ) - 1 );
1116
- params -> name [sizeof (params -> name ) - 1 ] = '\0' ;
1114
+ * params = default_params ;
1117
1115
1118
1116
* hParams = params ;
1119
1117
return UMF_RESULT_SUCCESS ;
0 commit comments