On Sun Oct 23 15:41:11 2022 +0000, Esme Povirk wrote:
Patch 1, `gdiplus: Avoid recursively locking image in GdipImageRotateFlip.`, changes the behavior of `GdipImageRotateFlip`, as it will no longer check whether the bitmap is already locked. We don't have tests for this, so I'm not sure which way is correct.
According to https://testbot.winehq.org/JobDetails.pl?Key=125324, GDI+ acts weird when the bitmap is rotate-flipped while being locked.
Some observations:
1. GdipImageRotateFlip succeeds after GdipBitmapLockBits. 2. After rotate-flip, the bitmap is still in locked state. 3. GdipBitmapUnlockBits fails with error 7 (Win32Error) after GdipImageRotateFlip. 4. Subsequent attempts to access the pixels or lock bits succeeds, but the Scan0 is different from the initial BitmapData.
Normally I'd add these to tests, but I'm afraid I'm actually running into undefined behaviour. Perhaps test in a child process?