Module: wine Branch: master Commit: c3d239566929879749a947f377e730d0fd0b859a URL: http://source.winehq.org/git/wine.git/?a=commit;h=c3d239566929879749a947f377... Author: Vincent Povirk <vincent(a)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;