change order of munmap and freeing of memblocks
authorLennart Poettering <lennart@poettering.net>
Wed, 25 Jul 2007 14:40:12 +0000 (14:40 +0000)
committerLennart Poettering <lennart@poettering.net>
Wed, 25 Jul 2007 14:40:12 +0000 (14:40 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1524 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/modules/module-oss.c

index cabdf16..b210c17 100644 (file)
@@ -1297,15 +1297,6 @@ void pa__done(pa_core *c, pa_module*m) {
     if (u->memchunk.memblock)
         pa_memblock_unref(u->memchunk.memblock);
 
-    if (u->in_mmap && u->in_mmap != MAP_FAILED)
-        munmap(u->in_mmap, u->in_hwbuf_size);
-
-    if (u->out_mmap && u->out_mmap != MAP_FAILED)
-        munmap(u->out_mmap, u->out_hwbuf_size);
-    
-    if (u->fd >= 0)
-        close(u->fd);
-
     if (u->out_mmap_memblocks) {
         unsigned i;
         for (i = 0; i < u->out_nfrags; i++)
@@ -1322,6 +1313,15 @@ void pa__done(pa_core *c, pa_module*m) {
         pa_xfree(u->in_mmap_memblocks);
     }
 
+    if (u->in_mmap && u->in_mmap != MAP_FAILED)
+        munmap(u->in_mmap, u->in_hwbuf_size);
+
+    if (u->out_mmap && u->out_mmap != MAP_FAILED)
+        munmap(u->out_mmap, u->out_hwbuf_size);
+    
+    if (u->fd >= 0)
+        close(u->fd);
+
     pa_xfree(u->device_name);
     
     pa_xfree(u);