summaryrefslogtreecommitdiff
path: root/src/rpi-renderer.c
diff options
context:
space:
mode:
authorNeil Roberts <neil@linux.intel.com>2013-11-13 15:44:06 +0000
committerKristian Høgsberg <krh@bitplanet.net>2013-11-13 16:32:58 -0800
commite505171a3254883aedb5f69ab8f090205ba88188 (patch)
tree7700ff6e036333ef8bd38708f361e96930fe62a4 /src/rpi-renderer.c
parentf707e8145ba8c26811c5dae2b3d00844afc0ffaf (diff)
downloadweston-e505171a3254883aedb5f69ab8f090205ba88188.tar.gz
Add calls to wl_shm_buffer_begin/end_access
This wraps all accesses to an SHM buffer between wl_shm_buffer_begin and end so that wayland-shm can install a handler for SIGBUS and catch attempts to pass the compositor a buffer that is too small.
Diffstat (limited to 'src/rpi-renderer.c')
-rw-r--r--src/rpi-renderer.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/rpi-renderer.c b/src/rpi-renderer.c
index 8fb562d6..1940db71 100644
--- a/src/rpi-renderer.c
+++ b/src/rpi-renderer.c
@@ -342,6 +342,8 @@ rpi_resource_update(struct rpi_resource *resource, struct weston_buffer *buffer,
pixman_region32_intersect(&write_region,
&write_region, region);
+ wl_shm_buffer_begin_access(buffer->shm_buffer);
+
#ifdef HAVE_RESOURCE_WRITE_DATA_RECT
/* XXX: Can this do a format conversion, so that scanout does not have to? */
r = pixman_region32_rectangles(&write_region, &n);
@@ -376,6 +378,8 @@ rpi_resource_update(struct rpi_resource *resource, struct weston_buffer *buffer,
width, r->y2 - r->y1, 0, r->y1, ret);
#endif
+ wl_shm_buffer_end_access(buffer->shm_buffer);
+
pixman_region32_fini(&write_region);
return ret ? -1 : 0;