compositor: free regions in wlsc_output_repaint()
Some of the local pixman region objects were not being properly destroyed before returning from the function. Destroy them, fixes some Valgrind errors. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
This commit is contained in:
parent
3c64723c9f
commit
cc9102edc5
|
@ -765,7 +765,7 @@ wlsc_output_repaint(struct wlsc_output *output)
|
||||||
|
|
||||||
pixman_region32_init(&new_damage);
|
pixman_region32_init(&new_damage);
|
||||||
pixman_region32_init(&opaque);
|
pixman_region32_init(&opaque);
|
||||||
|
|
||||||
wl_list_for_each(es, &ec->surface_list, link) {
|
wl_list_for_each(es, &ec->surface_list, link) {
|
||||||
pixman_region32_subtract(&es->damage, &es->damage, &opaque);
|
pixman_region32_subtract(&es->damage, &es->damage, &opaque);
|
||||||
pixman_region32_union(&new_damage, &new_damage, &es->damage);
|
pixman_region32_union(&new_damage, &new_damage, &es->damage);
|
||||||
|
@ -805,11 +805,14 @@ wlsc_output_repaint(struct wlsc_output *output)
|
||||||
wlsc_surface_draw(es, output, &repaint);
|
wlsc_surface_draw(es, output, &repaint);
|
||||||
pixman_region32_subtract(&es->damage,
|
pixman_region32_subtract(&es->damage,
|
||||||
&es->damage, &output->region);
|
&es->damage, &output->region);
|
||||||
|
pixman_region32_fini(&repaint);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ec->fade.spring.current > 0.001)
|
if (ec->fade.spring.current > 0.001)
|
||||||
fade_output(output, ec->fade.spring.current, &total_damage);
|
fade_output(output, ec->fade.spring.current, &total_damage);
|
||||||
|
|
||||||
|
pixman_region32_fini(&total_damage);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct wlsc_frame_callback {
|
struct wlsc_frame_callback {
|
||||||
|
|
Loading…
Reference in New Issue