rootston: fix segfault when rendering surface outside output

master
emersion 7 years ago
parent 5017d7f762
commit 7f5a538cb7
No known key found for this signature in database
GPG Key ID: 0FDE7BE0E88F5E48

@ -72,7 +72,7 @@ static void render_surface(struct wlr_surface *surface,
&output->damage); &output->damage);
bool damaged = pixman_region32_not_empty(&surface_damage); bool damaged = pixman_region32_not_empty(&surface_damage);
if (!damaged) { if (!damaged) {
goto render_subsurfaces; goto finish_surface_damage;
} }
float transform[16]; float transform[16];
@ -131,9 +131,10 @@ static void render_surface(struct wlr_surface *surface,
wlr_surface_send_frame_done(surface, when); wlr_surface_send_frame_done(surface, when);
render_subsurfaces: finish_surface_damage:
pixman_region32_fini(&surface_damage); pixman_region32_fini(&surface_damage);
render_subsurfaces:;
struct wlr_subsurface *subsurface; struct wlr_subsurface *subsurface;
wl_list_for_each(subsurface, &surface->subsurface_list, parent_link) { wl_list_for_each(subsurface, &surface->subsurface_list, parent_link) {
struct wlr_surface_state *state = subsurface->surface->current; struct wlr_surface_state *state = subsurface->surface->current;

Loading…
Cancel
Save