From c67951c70adb8c719e35769b9fcfa2b24b78be42 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Wed, 25 Jul 2012 18:11:05 +0900 Subject: [PATCH] gdiplus: Handle image loading failures under some XP versions. --- dlls/gdiplus/tests/image.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/dlls/gdiplus/tests/image.c b/dlls/gdiplus/tests/image.c index 7f89aec0477..3d17f3d158d 100644 --- a/dlls/gdiplus/tests/image.c +++ b/dlls/gdiplus/tests/image.c @@ -2702,7 +2702,13 @@ static GpImage *load_image(const BYTE *image_data, UINT image_size) ok(refcount == 1, "expected stream refcount 1, got %d\n", refcount); status = GdipLoadImageFromStream(stream, &image); - ok(status == Ok, "GdipLoadImageFromStream error %d\n", status); + ok(status == Ok || broken(status == InvalidParameter), /* XP */ + "GdipLoadImageFromStream error %d\n", status); + if (status != Ok) + { + IStream_Release(stream); + return NULL; + } status = GdipGetImageType(image, &image_type); ok(status == Ok, "GdipGetImageType error %d\n", status); @@ -2770,8 +2776,11 @@ static void test_image_properties(void) for (i = 0; i < sizeof(td)/sizeof(td[0]); i++) { image = load_image(td[i].image_data, td[i].image_size); - ok(image != 0, "%u: failed to load image data\n", i); - if (!image) continue; + if (!image) + { + trace("%u: failed to load image data\n", i); + continue; + } status = GdipGetImageType(image, &image_type); ok(status == Ok, "%u: GdipGetImageType error %d\n", i, status);