#ifdef HAVE_CREDS
if ((p->send_creds_now = p->write.current->with_creds))
p->write_creds = p->write.current->creds;
-
#endif
}
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;
+ }
+
+ }
}