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