[pulseaudio-discuss] [PATCH 1/5] bluetooth: Remove adapter_remove_all()

João Paulo Rechi Vita jprvita at gmail.com
Tue Oct 1 05:46:48 PDT 2013


On Sun, Sep 29, 2013 at 12:49 PM, Tanu Kaskinen
<tanu.kaskinen at linux.intel.com> wrote:
> The function was redundant, because all it did was call adapter_free()
> for each adapter in the hashmap, and that can be delegated to
> pa_hashmap when freeing or emptying it.
> ---
>  src/modules/bluetooth/bluez5-util.c | 20 ++++----------------
>  1 file changed, 4 insertions(+), 16 deletions(-)
>
> diff --git a/src/modules/bluetooth/bluez5-util.c b/src/modules/bluetooth/bluez5-util.c
> index 225e5c8..2be15d8 100644
> --- a/src/modules/bluetooth/bluez5-util.c
> +++ b/src/modules/bluetooth/bluez5-util.c
> @@ -492,17 +492,6 @@ static void adapter_remove(pa_bluetooth_discovery *y, const char *path) {
>      }
>  }
>
> -static void adapter_remove_all(pa_bluetooth_discovery *y) {
> -    pa_bluetooth_adapter *a;
> -
> -    pa_assert(y);
> -
> -    /* When this function is called all devices have already been freed */
> -
> -    while ((a = pa_hashmap_steal_first(y->adapters)))
> -        adapter_free(a);
> -}
> -
>  static void parse_device_property(pa_bluetooth_device *d, DBusMessageIter *i, bool is_property_change) {
>      const char *key;
>      DBusMessageIter variant_i;
> @@ -915,7 +904,7 @@ static DBusHandlerResult filter_cb(DBusConnection *bus, DBusMessage *m, void *us
>              if (old_owner && *old_owner) {
>                  pa_log_debug("Bluetooth daemon disappeared");
>                  device_remove_all(y);
> -                adapter_remove_all(y);
> +                pa_hashmap_remove_all(y->adapters);
>                  y->objects_listed = false;
>              }
>
> @@ -1517,7 +1506,8 @@ pa_bluetooth_discovery* pa_bluetooth_discovery_get(pa_core *c) {
>      y = pa_xnew0(pa_bluetooth_discovery, 1);
>      PA_REFCNT_INIT(y);
>      y->core = c;
> -    y->adapters = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func);
> +    y->adapters = pa_hashmap_new_full(pa_idxset_string_hash_func, pa_idxset_string_compare_func, NULL,
> +                                      (pa_free_cb_t) adapter_free);
>      y->devices = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func);
>      y->transports = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func);
>      PA_LLIST_HEAD_INIT(pa_dbus_pending, y->pending);
> @@ -1598,10 +1588,8 @@ void pa_bluetooth_discovery_unref(pa_bluetooth_discovery *y) {
>          pa_hashmap_free(y->devices);
>      }
>
> -    if (y->adapters) {
> -        adapter_remove_all(y);
> +    if (y->adapters)
>          pa_hashmap_free(y->adapters);
> -    }
>
>      if (y->transports) {
>          pa_assert(pa_hashmap_isempty(y->transports));

Ack.

-- 
João Paulo Rechi Vita
http://about.me/jprvita


More information about the pulseaudio-discuss mailing list