[PATCH 4/4] gdiplus: Return an error for consecutive GdipLockBitmapBit calls.
Nathan Beckmann
nathan.beckmann at gmail.com
Fri Mar 7 03:19:05 CST 2008
Testing on Windows indicates that consecutive read locks are not
allowed. Update logic to return the correct error code.
Update tests to reflect new functionality.
---
dlls/gdiplus/image.c | 3 +--
dlls/gdiplus/tests/image.c | 6 ++----
2 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c
index 3ffb7c7..4f05ba0 100644
--- a/dlls/gdiplus/image.c
+++ b/dlls/gdiplus/image.c
@@ -114,8 +114,7 @@ GpStatus WINGDIPAPI GdipBitmapLockBits(GpBitmap* bitmap, GDIPCONST GpRect* rect,
if(flags & ImageLockModeUserInputBuf)
return NotImplemented;
- if((bitmap->lockmode & ImageLockModeWrite) || (bitmap->lockmode &&
- (flags & ImageLockModeWrite)))
+ if(bitmap->lockmode)
return WrongState;
IPicture_get_Handle(bitmap->image.picture, &hbm);
diff --git a/dlls/gdiplus/tests/image.c b/dlls/gdiplus/tests/image.c
index d40f6c6..d51d94a 100644
--- a/dlls/gdiplus/tests/image.c
+++ b/dlls/gdiplus/tests/image.c
@@ -214,10 +214,8 @@ static void test_LockBits(void)
/* read x2 */
stat = GdipBitmapLockBits(bm, &rect, ImageLockModeRead, PixelFormat24bppRGB, &bd);
expect(Ok, stat);
- todo_wine {
- stat = GdipBitmapLockBits(bm, &rect, ImageLockModeRead, PixelFormat24bppRGB, &bd);
- expect(WrongState, stat);
- }
+ stat = GdipBitmapLockBits(bm, &rect, ImageLockModeRead, PixelFormat24bppRGB, &bd);
+ expect(WrongState, stat);
stat = GdipBitmapUnlockBits(bm, &bd);
expect(Ok, stat);
--
1.5.4.2
More information about the wine-patches
mailing list