@@ -644,20 +644,29 @@ static void free_slab(void *unused, void *slab) {
644644 }
645645}
646646
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+
647657umf_result_t disjoint_pool_initialize (umf_memory_provider_handle_t provider ,
648658 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 ) {
651660 return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
652661 }
653662
654- const umf_disjoint_pool_params_t * dp_params = params ;
663+ const umf_disjoint_pool_params_t * dp_params ;
655664
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 ;
661670 }
662671
663672 disjoint_pool_t * disjoint_pool =
@@ -1102,18 +1111,7 @@ umfDisjointPoolParamsCreate(umf_disjoint_pool_params_handle_t *hParams) {
11021111 return UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY ;
11031112 }
11041113
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 ;
11171115
11181116 * hParams = params ;
11191117 return UMF_RESULT_SUCCESS ;
0 commit comments