Module: wine Branch: master Commit: c3d239566929879749a947f377e730d0fd0b859a URL: http://source.winehq.org/git/wine.git/?a=commit;h=c3d239566929879749a947f377...
Author: Vincent Povirk vincent@codeweavers.com Date: Fri Apr 24 13:34:55 2009 -0500
gdiplus: Don't leak a device context when GdipCreateFromHWND fails.
---
dlls/gdiplus/graphics.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c index af3968c..36cb324 100644 --- a/dlls/gdiplus/graphics.c +++ b/dlls/gdiplus/graphics.c @@ -941,11 +941,17 @@ GpStatus WINGDIPAPI GdipCreateFromHDC2(HDC hdc, HANDLE hDevice, GpGraphics **gra GpStatus WINGDIPAPI GdipCreateFromHWND(HWND hwnd, GpGraphics **graphics) { GpStatus ret; + HDC hdc;
TRACE("(%p, %p)\n", hwnd, graphics);
- if((ret = GdipCreateFromHDC(GetDC(hwnd), graphics)) != Ok) + hdc = GetDC(hwnd); + + if((ret = GdipCreateFromHDC(hdc, graphics)) != Ok) + { + ReleaseDC(hwnd, hdc); return ret; + }
(*graphics)->hwnd = hwnd; (*graphics)->owndc = TRUE;