[cairo-commit] src/win32

Chris Wilson ickle at kemper.freedesktop.org
Fri Feb 15 06:08:19 PST 2013


 src/win32/cairo-win32-display-surface.c |    3 +++
 1 file changed, 3 insertions(+)

New commits:
commit fb1abbc4bc25c541cfb1084012a6a185c541c340
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Feb 15 14:04:21 2013 +0000

    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 at chris-wilson.co.uk>

diff --git a/src/win32/cairo-win32-display-surface.c b/src/win32/cairo-win32-display-surface.c
index ccd285d..0390625 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;
     }


More information about the cairo-commit mailing list