summaryrefslogtreecommitdiffstats
path: root/src/pulsecore/pstream.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2006-08-18 23:42:14 +0000
committerLennart Poettering <lennart@poettering.net>2006-08-18 23:42:14 +0000
commit7ac79098a623e33ffc9d7ca4bbce215ba5f10700 (patch)
tree75495e7294361d4d7f6107df2e215f97e69ca609 /src/pulsecore/pstream.c
parentfd3fe96ce52a1737bb253939f36264908b353b26 (diff)
remove export/import objects when SHM is disable for a pa_pstream object
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1275 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/pulsecore/pstream.c')
-rw-r--r--src/pulsecore/pstream.c25
1 files changed, 20 insertions, 5 deletions
diff --git a/src/pulsecore/pstream.c b/src/pulsecore/pstream.c
index ca8137a4..e2cfcb63 100644
--- a/src/pulsecore/pstream.c
+++ b/src/pulsecore/pstream.c
@@ -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;
+ }
+
+ }
}