From 5150849a67f0c5d4d1649f33047cbb23500c88b0 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 20 Jan 2016 12:35:44 -0500 Subject: [PATCH] wayland: don't pass in width and height to create_shm_pool create_shm_pool doesn't need the width or height, it just needs the total size. By passing it in, we're requiring it to redo stride calculation unnecessarily. This commit drops the width and height parameters and makes the function just take the total size directly. https://bugzilla.gnome.org/show_bug.cgi?id=760897 --- gdk/wayland/gdkdisplay-wayland.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/gdk/wayland/gdkdisplay-wayland.c b/gdk/wayland/gdkdisplay-wayland.c index bf3c20c8a9..7c19a5c6cb 100644 --- a/gdk/wayland/gdkdisplay-wayland.c +++ b/gdk/wayland/gdkdisplay-wayland.c @@ -924,14 +924,13 @@ static const struct wl_buffer_listener buffer_listener = { static struct wl_shm_pool * create_shm_pool (struct wl_shm *shm, - int width, - int height, + int size, size_t *buf_length, void **data_out) { char filename[] = "/tmp/wayland-shm-XXXXXX"; struct wl_shm_pool *pool; - int fd, size, stride; + int fd; void *data; fd = mkstemp (filename); @@ -943,8 +942,6 @@ create_shm_pool (struct wl_shm *shm, } unlink (filename); - stride = width * 4; - size = stride * height; if (ftruncate (fd, size) < 0) { g_critical (G_STRLOC ": Truncating temporary file failed: %s", @@ -1008,7 +1005,7 @@ _gdk_wayland_display_create_shm_surface (GdkWaylandDisplay *display, stride = cairo_format_stride_for_width (CAIRO_FORMAT_ARGB32, width*scale); data->pool = create_shm_pool (display->shm, - width*scale, height*scale, + height*scale*stride, &data->buf_length, &data->buf);