summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <ddevault@linode.com>2015-11-18 09:55:55 -0500
committerLibravatar Drew DeVault <ddevault@linode.com>2015-11-18 09:55:55 -0500
commit86372d00db86502cb41ae645b917c8191c22c994 (patch)
tree47a11db9d457d7f4f95dcf4531d1f8bac1994da0
parentNormalize indentation (diff)
downloadsway-86372d00db86502cb41ae645b917c8191c22c994.tar.gz
sway-86372d00db86502cb41ae645b917c8191c22c994.tar.zst
sway-86372d00db86502cb41ae645b917c8191c22c994.zip
Fix SIGBUS from wayland clients
-rw-r--r--include/client/client.h1
-rw-r--r--swaybg/main.c4
-rw-r--r--wayland/buffers.c2
3 files changed, 4 insertions, 3 deletions
diff --git a/include/client/client.h b/include/client/client.h
index 39f18caf..5b24d315 100644
--- a/include/client/client.h
+++ b/include/client/client.h
@@ -15,7 +15,6 @@ struct output_state {
15 15
16struct buffer { 16struct buffer {
17 struct wl_buffer *buffer; 17 struct wl_buffer *buffer;
18 int fd;
19 cairo_surface_t *surface; 18 cairo_surface_t *surface;
20 cairo_t *cairo; 19 cairo_t *cairo;
21 PangoContext *pango; 20 PangoContext *pango;
diff --git a/swaybg/main.c b/swaybg/main.c
index 790eb66b..b4614ac0 100644
--- a/swaybg/main.c
+++ b/swaybg/main.c
@@ -21,7 +21,7 @@ int main(int argc, char **argv) {
21 state->width = output->width; 21 state->width = output->width;
22 state->height = output->height; 22 state->height = output->height;
23 23
24 uint8_t r = 100, g = 100, b = 100; 24 uint8_t r = 0, g = 0, b = 0;
25 25
26 do { 26 do {
27 if (client_prerender(state) && state->cairo) { 27 if (client_prerender(state) && state->cairo) {
@@ -31,7 +31,7 @@ int main(int argc, char **argv) {
31 31
32 client_render(state); 32 client_render(state);
33 33
34 r++; if (r == 0) { g++; if (g == 0) { b++; } } 34 r++; g += 2; b += 4;
35 } 35 }
36 } while (wl_display_dispatch(state->display) != -1); 36 } while (wl_display_dispatch(state->display) != -1);
37 37
diff --git a/wayland/buffers.c b/wayland/buffers.c
index f426b912..6117e10b 100644
--- a/wayland/buffers.c
+++ b/wayland/buffers.c
@@ -66,6 +66,8 @@ static struct buffer *create_buffer(struct client_state *state, struct buffer *b
66 free(name); 66 free(name);
67 fd = -1; 67 fd = -1;
68 68
69 buf->width = width;
70 buf->height = height;
69 buf->surface = cairo_image_surface_create_for_data(data, CAIRO_FORMAT_ARGB32, width, height, stride); 71 buf->surface = cairo_image_surface_create_for_data(data, CAIRO_FORMAT_ARGB32, width, height, stride);
70 buf->cairo = cairo_create(buf->surface); 72 buf->cairo = cairo_create(buf->surface);
71 buf->pango = pango_cairo_create_context(buf->cairo); 73 buf->pango = pango_cairo_create_context(buf->cairo);