From 8a3f3c081756af8b9a3f87a5ecaf6bed6dfbd743 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Fri, 25 Apr 2014 12:36:44 +0400 Subject: [PATCH] gdi32/dibdrv: Fix a clipped_rects leak (Valgrind). --- dlls/gdi32/dibdrv/bitblt.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dlls/gdi32/dibdrv/bitblt.c b/dlls/gdi32/dibdrv/bitblt.c index a9c32bfc8fc..a944e71aea1 100644 --- a/dlls/gdi32/dibdrv/bitblt.c +++ b/dlls/gdi32/dibdrv/bitblt.c @@ -925,7 +925,10 @@ DWORD put_image_into_bitmap( BITMAPOBJ *bmp, HRGN clip, BITMAPINFO *info, src_dib.bits.is_copy = bits->is_copy; if (get_clipped_rects( &dib, &dst->visrect, clip, &clipped_rects )) + { copy_rect( &dib, &dst->visrect, &src_dib, &src->visrect, &clipped_rects, R2_COPYPEN ); + free_clipped_rects( &clipped_rects ); + } return ERROR_SUCCESS; @@ -981,6 +984,7 @@ DWORD dibdrv_PutImage( PHYSDEV dev, HRGN clip, BITMAPINFO *info, } else ret = execute_rop( pdev, &dst->visrect, &src_dib, &src->visrect, &clipped_rects, rop ); + free_clipped_rects( &clipped_rects ); } if (tmp_rgn) DeleteObject( tmp_rgn ); return ret;