1
0
Fork 0
mirror of synced 2025-03-07 03:53:26 +01:00

gdiplus: Fix some degenerate cases combining infinite regions.

This commit is contained in:
Esme Povirk 2024-02-05 20:41:23 +00:00 committed by Alexandre Julliard
parent 3c19b29ce6
commit 13b2755d4d

View file

@ -1108,7 +1108,10 @@ static GpStatus get_region_hrgn(struct region_element *element, GpGraphics *grap
case CombineModeXor: case CombineModeExclude:
left = CreateRectRgn(-(1 << 22), -(1 << 22), 1 << 22, 1 << 22);
break;
case CombineModeUnion: case CombineModeComplement:
case CombineModeComplement:
*hrgn = CreateRectRgn(0, 0, 0, 0);
return *hrgn ? Ok : OutOfMemory;
case CombineModeUnion:
*hrgn = NULL;
return Ok;
}
@ -1133,7 +1136,11 @@ static GpStatus get_region_hrgn(struct region_element *element, GpGraphics *grap
case CombineModeXor: case CombineModeComplement:
right = CreateRectRgn(-(1 << 22), -(1 << 22), 1 << 22, 1 << 22);
break;
case CombineModeUnion: case CombineModeExclude:
case CombineModeExclude:
DeleteObject(left);
*hrgn = CreateRectRgn(0, 0, 0, 0);
return *hrgn ? Ok : OutOfMemory;
case CombineModeUnion:
DeleteObject(left);
*hrgn = NULL;
return Ok;