Nikolay Sivov : windowscodecs: Fix return values for scaler's CopyPalette( ).

Alexandre Julliard julliard at winehq.org
Tue Dec 4 16:33:56 CST 2018


Module: wine
Branch: master
Commit: 8d75d949a6b36d4fce944272b058cd2290da48f8
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=8d75d949a6b36d4fce944272b058cd2290da48f8

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Thu Nov 29 12:36:41 2018 +0300

windowscodecs: Fix return values for scaler's CopyPalette().

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/windowscodecs/scaler.c       |  2 +-
 dlls/windowscodecs/tests/bitmap.c | 16 ++++++++++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/dlls/windowscodecs/scaler.c b/dlls/windowscodecs/scaler.c
index 3789831..eedc1bb 100644
--- a/dlls/windowscodecs/scaler.c
+++ b/dlls/windowscodecs/scaler.c
@@ -163,7 +163,7 @@ static HRESULT WINAPI BitmapScaler_CopyPalette(IWICBitmapScaler *iface,
         return E_INVALIDARG;
 
     if (!This->source)
-        return WINCODEC_ERR_WRONGSTATE;
+        return WINCODEC_ERR_PALETTEUNAVAILABLE;
 
     return IWICBitmapSource_CopyPalette(This->source, pIPalette);
 }
diff --git a/dlls/windowscodecs/tests/bitmap.c b/dlls/windowscodecs/tests/bitmap.c
index 2b5c373..d4b5979 100644
--- a/dlls/windowscodecs/tests/bitmap.c
+++ b/dlls/windowscodecs/tests/bitmap.c
@@ -1084,6 +1084,7 @@ static void test_bitmap_scaler(void)
 {
     WICPixelFormatGUID pixel_format;
     IWICBitmapScaler *scaler;
+    IWICPalette *palette;
     double res_x, res_y;
     IWICBitmap *bitmap;
     UINT width, height;
@@ -1148,6 +1149,15 @@ static void test_bitmap_scaler(void)
     ok(width == 123, "Unexpected width %u.\n", width);
     ok(height == 321, "Unexpected height %u.\n", height);
 
+    hr = IWICBitmapScaler_CopyPalette(scaler, NULL);
+    ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
+
+    hr = IWICImagingFactory_CreatePalette(factory, &palette);
+    ok(hr == S_OK, "Failed to create a palette, hr %#x.\n", hr);
+    hr = IWICBitmapScaler_CopyPalette(scaler, palette);
+    ok(hr == WINCODEC_ERR_PALETTEUNAVAILABLE, "Unexpected hr %#x.\n", hr);
+    IWICPalette_Release(palette);
+
     hr = IWICBitmapScaler_Initialize(scaler, (IWICBitmapSource *)bitmap, 4, 0,
         WICBitmapInterpolationModeNearestNeighbor);
     ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
@@ -1224,6 +1234,12 @@ static void test_bitmap_scaler(void)
     ok(hr == S_OK, "Failed to get scaler resolution, hr %#x.\n", hr);
     ok(res_x == 0.0 && res_y == 0.0, "Unexpected resolution %f x %f.\n", res_x, res_y);
 
+    hr = IWICImagingFactory_CreatePalette(factory, &palette);
+    ok(hr == S_OK, "Failed to create a palette, hr %#x.\n", hr);
+    hr = IWICBitmapScaler_CopyPalette(scaler, palette);
+    ok(hr == WINCODEC_ERR_PALETTEUNAVAILABLE, "Unexpected hr %#x.\n", hr);
+    IWICPalette_Release(palette);
+
     IWICBitmapScaler_Release(scaler);
 
     IWICBitmap_Release(bitmap);




More information about the wine-cvs mailing list