void pa__done(pa_module*m) { struct userdata*u; pa_assert(m); if (!(u = m->userdata)) return; if (u->client) avahi_client_free(u->client); if (u->avahi_poll) pa_avahi_poll_free(u->avahi_poll); if (u->tunnels) { struct tunnel *t; while ((t = pa_hashmap_steal_first(u->tunnels))) { pa_module_unload_request_by_index(u->core, t->module_index, TRUE); tunnel_free(t); } pa_hashmap_free(u->tunnels, NULL, NULL); } pa_xfree(u); }
void pa__done(pa_module *m) { struct userdata *u; pa_assert(m); if (!(u = m->userdata)) return; if (u->udev_io) m->core->mainloop->io_free(u->udev_io); if (u->monitor) udev_monitor_unref(u->monitor); if (u->udev) udev_unref(u->udev); if (u->inotify_io) m->core->mainloop->io_free(u->inotify_io); if (u->inotify_fd >= 0) pa_close(u->inotify_fd); if (u->devices) { struct device *d; while ((d = pa_hashmap_steal_first(u->devices))) device_free(d); pa_hashmap_free(u->devices, NULL, NULL); } pa_xfree(u); }
void pa_headerlist_free(pa_headerlist* p) { struct header *hdr; while ((hdr = pa_hashmap_steal_first(MAKE_HASHMAP(p)))) header_free(hdr); pa_hashmap_free(MAKE_HASHMAP(p), NULL, NULL); }
static void make_room(pa_hashmap *cache) { pa_assert(cache); while (pa_hashmap_size(cache) >= MAX_CACHE_SIZE) { struct rule *r; pa_assert_se(r = pa_hashmap_steal_first(cache)); rule_free(r); } }
void pa_device_port_hashmap_free(pa_hashmap *h) { pa_device_port *p; pa_assert(h); while ((p = pa_hashmap_steal_first(h))) pa_device_port_unref(p); pa_hashmap_free(h, NULL, NULL); }
void pa__done(pa_module*m) { struct userdata *u; struct device_info *d; pa_assert(m); if (!m->userdata) return; u = m->userdata; if (u->sink_new_slot) pa_hook_slot_free(u->sink_new_slot); if (u->sink_unlink_slot) pa_hook_slot_free(u->sink_unlink_slot); if (u->sink_state_changed_slot) pa_hook_slot_free(u->sink_state_changed_slot); if (u->source_new_slot) pa_hook_slot_free(u->source_new_slot); if (u->source_unlink_slot) pa_hook_slot_free(u->source_unlink_slot); if (u->source_state_changed_slot) pa_hook_slot_free(u->source_state_changed_slot); if (u->sink_input_new_slot) pa_hook_slot_free(u->sink_input_new_slot); if (u->sink_input_unlink_slot) pa_hook_slot_free(u->sink_input_unlink_slot); if (u->sink_input_move_start_slot) pa_hook_slot_free(u->sink_input_move_start_slot); if (u->sink_input_move_finish_slot) pa_hook_slot_free(u->sink_input_move_finish_slot); if (u->sink_input_state_changed_slot) pa_hook_slot_free(u->sink_input_state_changed_slot); if (u->source_output_new_slot) pa_hook_slot_free(u->source_output_new_slot); if (u->source_output_unlink_slot) pa_hook_slot_free(u->source_output_unlink_slot); if (u->source_output_move_start_slot) pa_hook_slot_free(u->source_output_move_start_slot); if (u->source_output_move_finish_slot) pa_hook_slot_free(u->source_output_move_finish_slot); if (u->source_output_state_changed_slot) pa_hook_slot_free(u->source_output_state_changed_slot); while ((d = pa_hashmap_steal_first(u->device_infos))) device_info_free(d); pa_hashmap_free(u->device_infos, NULL, NULL); pa_xfree(u); }
void pa_source_new_data_done(pa_source_new_data *data) { pa_assert(data); pa_proplist_free(data->proplist); if (data->ports) { pa_device_port *p; while ((p = pa_hashmap_steal_first(data->ports))) pa_device_port_free(p); pa_hashmap_free(data->ports, NULL, NULL); } pa_xfree(data->name); pa_xfree(data->active_port); }
void pa__done(pa_module *m) { struct userdata* u; pa_assert(m); if (!(u = m->userdata)) return; if (u->client_new_slot) pa_hook_slot_free(u->client_new_slot); if (u->client_proplist_changed_slot) pa_hook_slot_free(u->client_proplist_changed_slot); if (u->cache) { struct rule *r; while ((r = pa_hashmap_steal_first(u->cache))) rule_free(r); pa_hashmap_free(u->cache, NULL, NULL); } pa_xfree(u); }