void pa_cli_free(pa_cli *c) { pa_assert(c); pa_ioline_close(c->line); pa_ioline_unref(c->line); pa_client_free(c->client); pa_xfree(c->last_line); pa_xfree(c); }
static void connection_unlink(connection *c) { pa_assert(c); if (!c->protocol) return; if (c->options) { pa_simple_options_unref(c->options); c->options = NULL; } if (c->sink_input) { pa_sink_input_unlink(c->sink_input); pa_sink_input_unref(c->sink_input); c->sink_input = NULL; } if (c->source_output) { pa_source_output_unlink(c->source_output); pa_source_output_unref(c->source_output); c->source_output = NULL; } if (c->client) { pa_client_free(c->client); c->client = NULL; } if (c->io) { pa_iochannel_free(c->io); c->io = NULL; } pa_idxset_remove_by_data(c->protocol->connections, c, NULL); c->protocol = NULL; connection_unref(c); }
void pa__done(pa_module*m) { struct userdata *u; pa_assert(m); if ((u = m->userdata)) { if (u->connection) SmcCloseConnection(u->connection, 0, NULL); if (u->client) pa_client_free(u->client); if (u->x11) pa_x11_wrapper_unref(u->x11); pa_xfree(u); } if (ice_in_use) { IceRemoveConnectionWatch(new_ice_connection, m->core); ice_in_use = FALSE; } }