diff options
author | Neil Roberts <neil@linux.intel.com> | 2013-11-13 15:44:06 +0000 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2013-11-13 16:32:58 -0800 |
commit | e505171a3254883aedb5f69ab8f090205ba88188 (patch) | |
tree | 7700ff6e036333ef8bd38708f361e96930fe62a4 /src/rpi-renderer.c | |
parent | f707e8145ba8c26811c5dae2b3d00844afc0ffaf (diff) | |
download | weston-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.c | 4 |
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; |