commit 5c84ffa

Michael Forney  ·  2014-02-12 20:53:28 +0000 UTC
parent 8884f07
buffer: Run destructors before unmapping buffer

This way we avoid unmapping the buffer twice if a destructor calls
wld_unmap (as in wayland-shm).
1 files changed,  +3, -3
+3, -3
 1@@ -121,9 +121,6 @@ void wld_buffer_unreference(struct wld_buffer * base)
 2     if (--buffer->references > 0)
 3         return;
 4 
 5-    if (buffer->map_references > 0)
 6-        buffer->base.impl->unmap(buffer);
 7-
 8     pixman_region32_fini(&buffer->base.damage);
 9 
10     for (destructor = buffer->destructors; destructor; destructor = next)
11@@ -132,6 +129,9 @@ void wld_buffer_unreference(struct wld_buffer * base)
12         destructor->destroy(destructor);
13     }
14 
15+    if (buffer->map_references > 0)
16+        buffer->base.impl->unmap(buffer);
17+
18     buffer->base.impl->destroy(buffer);
19 }
20