mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-04 13:29:59 -05:00
hashmap: Add the ability to free keys
Since the hashmap stores a pointer to the key provided at pa_hashmap_put() time, it make sense to allow the hashmap to be given ownership of the key and have it free it at pa_hashmap_remove/free time. To do this cleanly, we now provide the key and value free functions at hashmap creation time with a pa_hashmap_new_full. With this, we do away with the free function that was provided at remove/free time for freeing the value.
This commit is contained in:
parent
317b46b571
commit
6825df8cec
41 changed files with 232 additions and 205 deletions
|
|
@ -1311,7 +1311,7 @@ static int extension_cb(pa_native_protocol *p, pa_module *m, pa_native_connectio
|
|||
pa_xfree(device);
|
||||
}
|
||||
|
||||
pa_hashmap_free(h, NULL);
|
||||
pa_hashmap_free(h);
|
||||
pa_log_error("Protocol error on reorder");
|
||||
goto fail;
|
||||
}
|
||||
|
|
@ -1323,7 +1323,7 @@ static int extension_cb(pa_native_protocol *p, pa_module *m, pa_native_connectio
|
|||
pa_xfree(device);
|
||||
}
|
||||
|
||||
pa_hashmap_free(h, NULL);
|
||||
pa_hashmap_free(h);
|
||||
pa_log_error("Client specified an unknown device in it's reorder list.");
|
||||
goto fail;
|
||||
}
|
||||
|
|
@ -1338,7 +1338,7 @@ static int extension_cb(pa_native_protocol *p, pa_module *m, pa_native_connectio
|
|||
pa_xfree(device);
|
||||
}
|
||||
|
||||
pa_hashmap_free(h, NULL);
|
||||
pa_hashmap_free(h);
|
||||
pa_log_error("Attempted to reorder mixed devices (sinks and sources)");
|
||||
goto fail;
|
||||
}
|
||||
|
|
@ -1411,7 +1411,7 @@ static int extension_cb(pa_native_protocol *p, pa_module *m, pa_native_connectio
|
|||
while ((device = pa_hashmap_steal_first(h))) {
|
||||
devices[idx++] = device;
|
||||
}
|
||||
pa_hashmap_free(h, NULL);
|
||||
pa_hashmap_free(h);
|
||||
|
||||
/* Simple bubble sort */
|
||||
for (i = 0; i < n_devices; ++i) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue