]> code.delx.au - pulseaudio/commitdiff
remove export/import objects when SHM is disable for a pa_pstream object
authorLennart Poettering <lennart@poettering.net>
Fri, 18 Aug 2006 23:42:14 +0000 (23:42 +0000)
committerLennart Poettering <lennart@poettering.net>
Fri, 18 Aug 2006 23:42:14 +0000 (23:42 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1275 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/pulsecore/pstream.c

index ca8137a4ae0ebfd5f37fa351d76c590f148a610b..e2cfcb633930e1d26994b80e291fab506eaadd1d 100644 (file)
@@ -476,7 +476,6 @@ static void prepare_next_write_item(pa_pstream *p) {
 #ifdef HAVE_CREDS
     if ((p->send_creds_now = p->write.current->with_creds))
         p->write_creds = p->write.current->creds;
-    
 #endif
 }
 
@@ -860,9 +859,25 @@ void pa_pstream_use_shm(pa_pstream *p, int enable) {
 
     p->use_shm = enable;
 
-    if (!p->import)
-        p->import = pa_memimport_new(p->mempool, memimport_release_cb, p);
+    if (enable) {
+    
+        if (!p->import)
+            p->import = pa_memimport_new(p->mempool, memimport_release_cb, p);
+        
+        if (!p->export)
+            p->export = pa_memexport_new(p->mempool, memexport_revoke_cb, p);
+
+    } else {
 
-    if (!p->export)
-        p->export = pa_memexport_new(p->mempool, memexport_revoke_cb, p);
+        if (p->import) {
+            pa_memimport_free(p->import);
+            p->import = NULL;
+        }
+        
+        if (p->export) {
+            pa_memexport_free(p->export);
+            p->export = NULL;
+        }
+        
+    }
 }