diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2013-02-15 14:04:21 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2013-02-15 14:08:11 +0000 |
commit | fb1abbc4bc25c541cfb1084012a6a185c541c340 (patch) | |
tree | d23d8000b7632a3c879c7990e7282e00dd802371 | |
parent | 41e646e019911f8e566e4f9963036117750f862f (diff) |
win32: Free the fallback upon finish
Zozó Teki pointed out that we leak the fallback surface upon finish in
case it was active at the time as the preceding flush would only clear
the damage and not decouple the fallback surface.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | src/win32/cairo-win32-display-surface.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/win32/cairo-win32-display-surface.c b/src/win32/cairo-win32-display-surface.c index ccd285d7..03906252 100644 --- a/src/win32/cairo-win32-display-surface.c +++ b/src/win32/cairo-win32-display-surface.c @@ -429,6 +429,8 @@ _cairo_win32_display_surface_finish (void *abstract_surface) DeleteDC (surface->win32.dc); } + _cairo_win32_display_surface_discard_fallback (surface); + if (surface->initial_clip_rgn) DeleteObject (surface->initial_clip_rgn); @@ -758,6 +760,7 @@ _cairo_win32_display_surface_discard_fallback (cairo_win32_display_surface_t *su TRACE ((stderr, "%s (surface=%d)\n", __FUNCTION__, surface->win32.base.unique_id)); + cairo_surface_finish (surface->fallback); cairo_surface_destroy (surface->fallback); surface->fallback = NULL; } |