diff --git a/src/modules/module-switch-on-port-available.c b/src/modules/module-switch-on-port-available.c index 4c3d4afa7..1da612d56 100644 --- a/src/modules/module-switch-on-port-available.c +++ b/src/modules/module-switch-on-port-available.c @@ -142,7 +142,7 @@ static pa_hook_result_t port_available_hook_callback(pa_core *c, pa_device_port pa_log_debug("finding port %s", port->name); PA_IDXSET_FOREACH(card, c->cards, state) - if (card->ports && port == pa_hashmap_get(card->ports, port->name)) + if (port == pa_hashmap_get(card->ports, port->name)) break; if (!card) { @@ -211,9 +211,6 @@ static void handle_all_unavailable(pa_core *core) { pa_device_port *port; void *state2; - if (!card->ports) - continue; - PA_HASHMAP_FOREACH(port, card->ports, state2) { if (port->available == PA_PORT_AVAILABLE_NO) port_available_hook_callback(core, port, NULL); diff --git a/src/pulsecore/cli-text.c b/src/pulsecore/cli-text.c index 8472b6c56..e651919d7 100644 --- a/src/pulsecore/cli-text.c +++ b/src/pulsecore/cli-text.c @@ -120,7 +120,9 @@ static void append_port_list(pa_strbuf *s, pa_hashmap *ports) pa_device_port *p; void *state; - if (!ports) + pa_assert(ports); + + if (pa_hashmap_isempty(ports)) return; pa_strbuf_puts(s, "\tports:\n"); diff --git a/src/pulsecore/protocol-native.c b/src/pulsecore/protocol-native.c index bb61f75d7..3e9c91149 100644 --- a/src/pulsecore/protocol-native.c +++ b/src/pulsecore/protocol-native.c @@ -3230,6 +3230,7 @@ static void client_fill_tagstruct(pa_native_connection *c, pa_tagstruct *t, pa_c static void card_fill_tagstruct(pa_native_connection *c, pa_tagstruct *t, pa_card *card) { void *state = NULL; pa_card_profile *p; + pa_device_port *port; pa_assert(t); pa_assert(card); @@ -3255,29 +3256,23 @@ static void card_fill_tagstruct(pa_native_connection *c, pa_tagstruct *t, pa_car if (c->version < 26) return; - if (card->ports) { - pa_device_port* port; + pa_tagstruct_putu32(t, pa_hashmap_size(card->ports)); - pa_tagstruct_putu32(t, pa_hashmap_size(card->ports)); + PA_HASHMAP_FOREACH(port, card->ports, state) { + void *state2; - PA_HASHMAP_FOREACH(port, card->ports, state) { - void *state2; + pa_tagstruct_puts(t, port->name); + pa_tagstruct_puts(t, port->description); + pa_tagstruct_putu32(t, port->priority); + pa_tagstruct_putu32(t, port->available); + pa_tagstruct_putu8(t, /* FIXME: port->direction */ (port->is_input ? PA_DIRECTION_INPUT : 0) | (port->is_output ? PA_DIRECTION_OUTPUT : 0)); + pa_tagstruct_put_proplist(t, port->proplist); - pa_tagstruct_puts(t, port->name); - pa_tagstruct_puts(t, port->description); - pa_tagstruct_putu32(t, port->priority); - pa_tagstruct_putu32(t, port->available); - pa_tagstruct_putu8(t, /* FIXME: port->direction */ (port->is_input ? PA_DIRECTION_INPUT : 0) | (port->is_output ? PA_DIRECTION_OUTPUT : 0)); - pa_tagstruct_put_proplist(t, port->proplist); + pa_tagstruct_putu32(t, pa_hashmap_size(port->profiles)); - pa_tagstruct_putu32(t, pa_hashmap_size(port->profiles)); - - PA_HASHMAP_FOREACH(p, port->profiles, state2) - pa_tagstruct_puts(t, p->name); - } - - } else - pa_tagstruct_putu32(t, 0); + PA_HASHMAP_FOREACH(p, port->profiles, state2) + pa_tagstruct_puts(t, p->name); + } } static void module_fill_tagstruct(pa_native_connection *c, pa_tagstruct *t, pa_module *module) {