@@ -76,12 +76,14 @@ int config_userdata_get_float_array(void *userdata, const char *key_str,
7676 config_get_string (usr -> conf , key [1 ], & str ))
7777 {
7878 unsigned i ;
79- struct string_list * list = string_split (str , " " );
80- * values = (float * )calloc (list -> size , sizeof (float ));
81- for (i = 0 ; i < list -> size ; i ++ )
82- (* values )[i ] = (float )strtod (list -> elems [i ].data , NULL );
83- * out_num_values = (unsigned )list -> size ;
84- string_list_free (list );
79+ struct string_list list = {0 };
80+ string_list_initialize (& list );
81+ string_split_noalloc (& list , str , " " );
82+ * values = (float * )calloc (list .size , sizeof (float ));
83+ for (i = 0 ; i < list .size ; i ++ )
84+ (* values )[i ] = (float )strtod (list .elems [i ].data , NULL );
85+ * out_num_values = (unsigned )list .size ;
86+ string_list_deinitialize (& list );
8587 free (str );
8688 return true;
8789 }
@@ -106,12 +108,14 @@ int config_userdata_get_int_array(void *userdata, const char *key_str,
106108 config_get_string (usr -> conf , key [1 ], & str ))
107109 {
108110 unsigned i ;
109- struct string_list * list = string_split (str , " " );
110- * values = (int * )calloc (list -> size , sizeof (int ));
111- for (i = 0 ; i < list -> size ; i ++ )
112- (* values )[i ] = (int )strtod (list -> elems [i ].data , NULL );
113- * out_num_values = (unsigned )list -> size ;
114- string_list_free (list );
111+ struct string_list list = {0 };
112+ string_list_initialize (& list );
113+ string_split_noalloc (& list , str , " " );
114+ * values = (int * )calloc (list .size , sizeof (int ));
115+ for (i = 0 ; i < list .size ; i ++ )
116+ (* values )[i ] = (int )strtod (list .elems [i ].data , NULL );
117+ * out_num_values = (unsigned )list .size ;
118+ string_list_deinitialize (& list );
115119 free (str );
116120 return true;
117121 }
0 commit comments