]> code.delx.au - pulseaudio/blobdiff - polyp/module-oss.c
add refernce counting for sinks, sources, sink-inputs and source-outputs
[pulseaudio] / polyp / module-oss.c
index b4e011d84fb486c387e0f36b59894edf9b222b35..a45f72b8ca0211c77baf65c50e409996686460d0 100644 (file)
@@ -322,10 +322,15 @@ void pa__done(struct pa_core *c, struct pa_module*m) {
     if (u->silence.memblock)
         pa_memblock_unref(u->silence.memblock);
 
-    if (u->sink)
-        pa_sink_free(u->sink);
-    if (u->source)
-        pa_source_free(u->source);
+    if (u->sink) {
+        pa_sink_disconnect(u->sink);
+        pa_sink_unref(u->sink);
+    }
+    
+    if (u->source) {
+        pa_source_disconnect(u->source);
+        pa_source_unref(u->source);
+    }
     
     pa_iochannel_free(u->io);
     pa_xfree(u);