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
This commit is contained in:
Ray Strode 2016-01-20 12:35:44 -05:00
parent 1e001eaa78
commit 5150849a67

View File

@ -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);