diff options
author | Tanu Kaskinen <tanuk@iki.fi> | 2009-08-04 17:55:10 +0300 |
---|---|---|
committer | Tanu Kaskinen <tanuk@iki.fi> | 2009-08-04 17:55:10 +0300 |
commit | b1578e27b62e7332111bb706f79858b0866029e3 (patch) | |
tree | 781d6cd90a0bdfe2b6ed164767316292d146e600 /src | |
parent | 8966c61d3343e13502cfa210bb7123b7d7e7b27e (diff) |
dbus-protocol, dbusiface-core: Take a reference when storing the core pointer.
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/dbus/iface-core.c | 3 | ||||
-rw-r--r-- | src/pulsecore/protocol-dbus.c | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/modules/dbus/iface-core.c b/src/modules/dbus/iface-core.c index 695e4a3c..ca9ba582 100644 --- a/src/modules/dbus/iface-core.c +++ b/src/modules/dbus/iface-core.c @@ -1923,7 +1923,7 @@ pa_dbusiface_core *pa_dbusiface_core_new(pa_core *core) { pa_assert(core); c = pa_xnew(pa_dbusiface_core, 1); - c->core = core; + c->core = pa_core_ref(core); c->subscription = pa_subscription_new(core, PA_SUBSCRIPTION_MASK_ALL, subscription_cb, c); c->dbus_protocol = pa_dbus_protocol_get(core); c->cards = pa_hashmap_new(pa_idxset_trivial_hash_func, pa_idxset_trivial_compare_func); @@ -2044,6 +2044,7 @@ void pa_dbusiface_core_free(pa_dbusiface_core *c) { pa_hook_slot_free(c->extension_unregistered_slot); pa_dbus_protocol_unref(c->dbus_protocol); + pa_core_unref(c->core); pa_xfree(c); } diff --git a/src/pulsecore/protocol-dbus.c b/src/pulsecore/protocol-dbus.c index 475b952f..8fc08032 100644 --- a/src/pulsecore/protocol-dbus.c +++ b/src/pulsecore/protocol-dbus.c @@ -117,7 +117,7 @@ static pa_dbus_protocol *dbus_protocol_new(pa_core *c) { p = pa_xnew(pa_dbus_protocol, 1); PA_REFCNT_INIT(p); - p->core = c; + p->core = pa_core_ref(c); p->objects = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func); p->connections = pa_hashmap_new(pa_idxset_trivial_hash_func, pa_idxset_trivial_compare_func); p->extensions = pa_idxset_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func); @@ -170,6 +170,8 @@ void pa_dbus_protocol_unref(pa_dbus_protocol *p) { pa_assert_se(pa_shared_remove(p->core, "dbus-protocol") >= 0); + pa_core_unref(p->core); + pa_xfree(p); } |