]> code.delx.au - pulseaudio/blobdiff - src/pulsecore/protocol-dbus.c
dbus-protocol, dbusiface-core: Take a reference when storing the core pointer.
[pulseaudio] / src / pulsecore / protocol-dbus.c
index 475b952fc15b1da8d56614506301aceddc550372..8fc080320a229976cfdaabe88691aedf513eb6e0 100644 (file)
@@ -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);
 }