char *list_str = NULL;
char *token = NULL;
char *ptr = NULL;
+ const char *gain_str = NULL;
const char *table_str = DEFAULT_TABLE;
volume_info* v = NULL;
void *state = NULL;
key = pa_xmalloc0(size);
if (key) {
snprintf(key, size, "%s:%s", table_str, vol_type_str);
- list_str = iniparser_getstring(dict, key, NULL);
+ list_str = pa_xstrdup(iniparser_getstring(dict, key, NULL));
if (list_str) {
token = strtok_r(list_str, delimiter, &ptr);
while (token) {
pa_idxset_put(v->values[STREAM_DIRECTION_OUT].idx_volume_values, vol_value, NULL);
token = strtok_r(NULL, delimiter, &ptr);
}
+ pa_xfree(list_str);
} else {
pa_log_warn("[%s] is not defined, skip it", key);
}
key = pa_xmalloc0(size);
if (key) {
snprintf(key, size, "%s:gain_%s", table_str, gain_type_str);
- token = iniparser_getstring(dict, key, NULL);
- if (token) {
+ gain_str = iniparser_getstring(dict, key, NULL);
+ if (gain_str) {
double *modifier_gain = pa_xmalloc0(sizeof(double));
- *modifier_gain = atof(token);
+ *modifier_gain = atof(gain_str);
if (!m->volume_modifiers)
m->volume_modifiers = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func);
pa_hashmap_put(m->volume_modifiers, (void*)gain_type_str, modifier_gain);