diff --git a/src/compton.c b/src/compton.c index e8346cd..42c957f 100644 --- a/src/compton.c +++ b/src/compton.c @@ -3150,10 +3150,6 @@ session_destroy(session_t *ps) { free_paint(ps, &ps->tgt_buffer); pixman_region32_fini(&ps->screen_reg); - for (int i = 0; i < ps->ndamage; ++i) - pixman_region32_fini(&ps->damage_ring[i]); - ps->ndamage = 0; - ps->damage_ring = ps->damage = NULL; free(ps->expose_rects); free(ps->o.config_file); diff --git a/src/render.c b/src/render.c index 8fba824..b604edb 100644 --- a/src/render.c +++ b/src/render.c @@ -1205,6 +1205,13 @@ void deinit_render(session_t *ps) { // Free other X resources free_root_tile(ps); + // Free the damage ring + for (int i = 0; i < ps->ndamage; ++i) + pixman_region32_fini(&ps->damage_ring[i]); + ps->ndamage = 0; + free(ps->damage_ring); + ps->damage_ring = ps->damage = NULL; + #ifdef CONFIG_OPENGL glx_destroy(ps); #endif