From 5d26e7b4dc76da3ea85611cc7513a39df493259c Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Mon, 11 Dec 2006 19:51:19 +0000 Subject: [PATCH] Fix of HBITMAP leak in GAPI driver by Dmitry Yakimov. Fixes Bugzilla #371. --- src/video/gapi/SDL_gapivideo.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/video/gapi/SDL_gapivideo.c b/src/video/gapi/SDL_gapivideo.c index 93648f983..0dfce50cb 100644 --- a/src/video/gapi/SDL_gapivideo.c +++ b/src/video/gapi/SDL_gapivideo.c @@ -1178,7 +1178,7 @@ static void GAPI_WinPAINT(_THIS, HDC hdc) // draw current offscreen buffer on hdc int bpp = 16; // we always use either 8 or 16 bpp internally - + HGDIOBJ prevObject; unsigned short *bitmapData; HBITMAP hb; HDC srcDC; @@ -1216,10 +1216,11 @@ static void GAPI_WinPAINT(_THIS, HDC hdc) // FIXME: prevent misalignment, but I've never seen non aligned width of screen memcpy(bitmapData, this->hidden->buffer, pHeader->biSizeImage); srcDC = CreateCompatibleDC(hdc); - SelectObject(srcDC, hb); + prevObject = SelectObject(srcDC, hb); BitBlt(hdc, 0, 0, this->hidden->w, this->hidden->h, srcDC, 0, 0, SRCCOPY); + SelectObject(srcDC, prevObject); DeleteObject(hb); DeleteDC(srcDC); }