aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2018-01-18 14:50:30 +0100
committeremersion <contact@emersion.fr>2018-01-18 14:50:30 +0100
commit7f5a538cb73eb20fa37ff98161d45a3a383622aa (patch)
tree64e819c31b49498c36cfb9115b3ca658e72de1c7
parent5017d7f7625e4ca3369feb241a81ad8a570d0fd1 (diff)
rootston: fix segfault when rendering surface outside output
-rw-r--r--rootston/output.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/rootston/output.c b/rootston/output.c
index 027d8275..16a185af 100644
--- a/rootston/output.c
+++ b/rootston/output.c
@@ -72,7 +72,7 @@ static void render_surface(struct wlr_surface *surface,
&output->damage);
bool damaged = pixman_region32_not_empty(&surface_damage);
if (!damaged) {
- goto render_subsurfaces;
+ goto finish_surface_damage;
}
float transform[16];
@@ -131,9 +131,10 @@ static void render_surface(struct wlr_surface *surface,
wlr_surface_send_frame_done(surface, when);
-render_subsurfaces:
+finish_surface_damage:
pixman_region32_fini(&surface_damage);
+render_subsurfaces:;
struct wlr_subsurface *subsurface;
wl_list_for_each(subsurface, &surface->subsurface_list, parent_link) {
struct wlr_surface_state *state = subsurface->surface->current;