gdiplus: Fix crash if failed to create bitmap.
Signed-off-by: Jiajin Cui <cuijiajin@uniontech.com> Signed-off-by: Esme Povirk <esme@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
5df591fe01
commit
f992bc77c8
|
@ -459,6 +459,9 @@ static GpStatus alpha_blend_hdc_pixels(GpGraphics *graphics, INT dst_x, INT dst_
|
|||
hbitmap = CreateDIBSection(hdc, (BITMAPINFO*)&bih, DIB_RGB_COLORS,
|
||||
(void**)&temp_bits, NULL, 0);
|
||||
|
||||
if(!hbitmap || !temp_bits)
|
||||
goto done;
|
||||
|
||||
if ((GetDeviceCaps(graphics->hdc, TECHNOLOGY) == DT_RASPRINTER &&
|
||||
GetDeviceCaps(graphics->hdc, SHADEBLENDCAPS) == SB_NONE) ||
|
||||
fmt & PixelFormatPAlpha)
|
||||
|
@ -470,9 +473,12 @@ static GpStatus alpha_blend_hdc_pixels(GpGraphics *graphics, INT dst_x, INT dst_
|
|||
SelectObject(hdc, hbitmap);
|
||||
gdi_alpha_blend(graphics, dst_x, dst_y, src_width, src_height,
|
||||
hdc, 0, 0, src_width, src_height);
|
||||
DeleteDC(hdc);
|
||||
|
||||
DeleteObject(hbitmap);
|
||||
|
||||
done:
|
||||
DeleteDC(hdc);
|
||||
|
||||
return Ok;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue