]> code.delx.au - pulseaudio/commitdiff
dbus: Do not refcnt the core.
authorColin Guthrie <cguthrie@mandriva.org>
Fri, 25 Mar 2011 23:43:26 +0000 (23:43 +0000)
committerColin Guthrie <cguthrie@mandriva.org>
Fri, 25 Mar 2011 23:43:26 +0000 (23:43 +0000)
We should not call pa_core_ref() anywhere in the code. Doing so
will prevent proper daemon shutdown as the only call (in daemon/main.c)
to pa_core_unref() should always call free_core() and perform a normal
shutdown (i.e. unload all modules gracefully).

src/modules/dbus/iface-core.c
src/modules/dbus/iface-memstats.c
src/pulsecore/protocol-dbus.c

index 268a87eddfd56445d9118f467c05ca35f3697140..bb43df9b6fae07cd9f8d2a952d76422d40725d57 100644 (file)
@@ -1975,7 +1975,7 @@ pa_dbusiface_core *pa_dbusiface_core_new(pa_core *core) {
     pa_assert(core);
 
     c = pa_xnew(pa_dbusiface_core, 1);
-    c->core = pa_core_ref(core);
+    c->core = 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);
@@ -2124,7 +2124,6 @@ void pa_dbusiface_core_free(pa_dbusiface_core *c) {
         pa_source_unref(c->fallback_source);
 
     pa_dbus_protocol_unref(c->dbus_protocol);
-    pa_core_unref(c->core);
 
     pa_xfree(c);
 }
index 73a84be808ad04b3efd1f4e1e178d5cf666979a4..4cd692dbd513c1c47f7bf46644ea36aa75f2b19f 100644 (file)
@@ -202,7 +202,7 @@ pa_dbusiface_memstats *pa_dbusiface_memstats_new(pa_dbusiface_core *dbus_core, p
     pa_assert(core);
 
     m = pa_xnew(pa_dbusiface_memstats, 1);
-    m->core = pa_core_ref(core);
+    m->core = core;
     m->path = pa_sprintf_malloc("%s/%s", PA_DBUS_CORE_OBJECT_PATH, OBJECT_NAME);
     m->dbus_protocol = pa_dbus_protocol_get(core);
 
@@ -219,7 +219,6 @@ void pa_dbusiface_memstats_free(pa_dbusiface_memstats *m) {
     pa_xfree(m->path);
 
     pa_dbus_protocol_unref(m->dbus_protocol);
-    pa_core_unref(m->core);
 
     pa_xfree(m);
 }
index 13c05d922cf7fef6fa3cfe5677f2b7fd5fab0032..c32991572bfdb13e1b63e56bb310d1c413e5b7bc 100644 (file)
@@ -125,7 +125,7 @@ static pa_dbus_protocol *dbus_protocol_new(pa_core *c) {
 
     p = pa_xnew(pa_dbus_protocol, 1);
     PA_REFCNT_INIT(p);
-    p->core = pa_core_ref(c);
+    p->core = 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);
@@ -178,8 +178,6 @@ 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);
 }