Module: wine Branch: master Commit: 8226a187d63e3d355127cf1db830a4281132a598 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8226a187d63e3d355127cf1db8...
Author: Matteo Bruni mbruni@codeweavers.com Date: Mon Feb 24 19:18:49 2014 +0100
d3dx9: Don't call CoUninitialize if CoInitializeEx failed.
---
dlls/d3dx9_36/surface.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/dlls/d3dx9_36/surface.c b/dlls/d3dx9_36/surface.c index 94301e8..5e87d94 100644 --- a/dlls/d3dx9_36/surface.c +++ b/dlls/d3dx9_36/surface.c @@ -1025,7 +1025,7 @@ HRESULT WINAPI D3DXLoadSurfaceFromFileInMemory(IDirect3DSurface9 *pDestSurface, const RECT *pSrcRect, DWORD dwFilter, D3DCOLOR Colorkey, D3DXIMAGE_INFO *pSrcInfo) { D3DXIMAGE_INFO imginfo; - HRESULT hr; + HRESULT hr, com_init;
IWICImagingFactory *factory = NULL; IWICBitmapDecoder *decoder; @@ -1078,7 +1078,7 @@ HRESULT WINAPI D3DXLoadSurfaceFromFileInMemory(IDirect3DSurface9 *pDestSurface, if (imginfo.ImageFileFormat == D3DXIFF_DIB) convert_dib_to_bmp((void**)&pSrcData, &SrcDataSize);
- CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); + com_init = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
if (FAILED(CoCreateInstance(&CLSID_WICImagingFactory, NULL, CLSCTX_INPROC_SERVER, &IID_IWICImagingFactory, (void**)&factory))) goto cleanup_err; @@ -1181,7 +1181,8 @@ cleanup_err: if (factory) IWICImagingFactory_Release(factory);
- CoUninitialize(); + if (SUCCEEDED(com_init)) + CoUninitialize();
if (imginfo.ImageFileFormat == D3DXIFF_DIB) HeapFree(GetProcessHeap(), 0, (void*)pSrcData);