I think this is cleaner. --- src/pulsecore/node.c | 10 +++------- src/pulsecore/node.h | 9 ++------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/src/pulsecore/node.c b/src/pulsecore/node.c index 3c6584c..5d1397b 100644 --- a/src/pulsecore/node.c +++ b/src/pulsecore/node.c @@ -131,7 +131,6 @@ pa_node *pa_node_new(pa_core *core, pa_node_new_data *data) { n = pa_xnew0(pa_node, 1); n->core = core; - n->state = PA_NODE_STATE_INIT; if (!(registered_name = pa_namereg_register(core, name, PA_NAMEREG_NODE, n, false))) { pa_log("Failed to register name %s.", name); @@ -159,7 +158,7 @@ fail: void pa_node_free(pa_node *node) { pa_assert(node); - if (node->state == PA_NODE_STATE_LINKED) + if (!node->unlinked) pa_node_unlink(node); pa_xfree(node->description); @@ -381,12 +380,10 @@ int pa_node_put(pa_node *node, pa_node **requested_connections, unsigned n_reque }; pa_assert(node); - pa_assert(node->state == PA_NODE_STATE_INIT); pa_assert(node->owner); pa_assert(requested_connections || n_requested_connections == 0); pa_assert_se(pa_idxset_put(node->core->nodes, node, &node->index) >= 0); - node->state = PA_NODE_STATE_LINKED; if (node->monitor_of) node->monitor_of->monitor = node; @@ -408,9 +405,8 @@ int pa_node_put(pa_node *node, pa_node **requested_connections, unsigned n_reque void pa_node_unlink(pa_node *node) { pa_assert(node); - pa_assert(node->state != PA_NODE_STATE_INIT); - if (node->state == PA_NODE_STATE_UNLINKED) + if (node->unlinked) return; pa_log_debug("Unlinking node %s.", node->name); @@ -420,7 +416,7 @@ void pa_node_unlink(pa_node *node) { pa_assert_se(pa_idxset_remove_by_index(node->core->nodes, node->index)); - node->state = PA_NODE_STATE_UNLINKED; + node->unlinked = true; } void pa_node_active_changed(pa_node *node, bool new_active) { diff --git a/src/pulsecore/node.h b/src/pulsecore/node.h index ab31d96..1014f16 100644 --- a/src/pulsecore/node.h +++ b/src/pulsecore/node.h @@ -40,12 +40,6 @@ typedef enum { const char *pa_node_type_to_string(pa_node_type_t type); -typedef enum { - PA_NODE_STATE_INIT, - PA_NODE_STATE_LINKED, - PA_NODE_STATE_UNLINKED -} pa_node_state_t; - struct pa_node_new_data { /* Node names are generated automatically as much as possible, but * sometimes the available information for automatic generation isn't @@ -73,11 +67,12 @@ struct pa_node { pa_node_type_t type; pa_direction_t direction; - pa_node_state_t state; pa_node *monitor; pa_node *monitor_of; bool active; + bool unlinked; + void *owner; }; -- 1.8.3.1