Roderick Colenbrander : gdi32: GetPaletteEntries should not filter peFlags (test included).

Alexandre Julliard julliard at winehq.org
Tue Feb 19 08:05:12 CST 2008


Module: wine
Branch: master
Commit: c937634376838ef81aa3543f8f1a7e49b1e9ca50
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c937634376838ef81aa3543f8f1a7e49b1e9ca50

Author: Roderick Colenbrander <thunderbird2k at gmx.net>
Date:   Sun Feb 17 13:57:16 2008 +0000

gdi32: GetPaletteEntries should not filter peFlags (test included).

---

 dlls/gdi32/palette.c       |    3 ---
 dlls/gdi32/tests/palette.c |   26 ++++++++++++++++++++++++++
 2 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/dlls/gdi32/palette.c b/dlls/gdi32/palette.c
index ddf597e..1b6a966 100644
--- a/dlls/gdi32/palette.c
+++ b/dlls/gdi32/palette.c
@@ -300,9 +300,6 @@ UINT WINAPI GetPaletteEntries(
       }
       memcpy( entries, &palPtr->logpalette.palPalEntry[start],
 	      count * sizeof(PALETTEENTRY) );
-      for( numEntries = 0; numEntries < count ; numEntries++ )
-	   if (entries[numEntries].peFlags & 0xF0)
-	       entries[numEntries].peFlags = 0;
     }
 
     GDI_ReleaseObj( hpalette );
diff --git a/dlls/gdi32/tests/palette.c b/dlls/gdi32/tests/palette.c
index 40e6c7c..c9455ca 100644
--- a/dlls/gdi32/tests/palette.c
+++ b/dlls/gdi32/tests/palette.c
@@ -120,7 +120,33 @@ static void test_DIB_PAL_COLORS(void) {
     ReleaseDC( NULL, hdc );
 }
 
+static void test_palette_entries(void)
+{
+    char logpalettebuf[sizeof(LOGPALETTE) + sizeof(logpalettedata)];
+    PLOGPALETTE logpalette = (PLOGPALETTE)logpalettebuf;
+    HPALETTE hpal;
+    UINT res=0;
+    PALETTEENTRY palEntry = { 0x1, 0x2, 0x3, 0xff };
+    PALETTEENTRY getEntryResult;
+
+    /* Initalize the logical palette with a few colours */
+    logpalette->palVersion = 0x300;
+    logpalette->palNumEntries = 8;
+    memcpy( logpalette->palPalEntry, logpalettedata, sizeof(logpalettedata) );
+    hpal = CreatePalette( logpalette );
+
+    /* Set a new entry with peFlags to 0xff */
+    SetPaletteEntries(hpal, 0, 1, &palEntry);
+
+    /* Retrieve the entry to see if GDI32 performs any filtering on peFlags */
+    res = GetPaletteEntries(hpal, 0, 1, &getEntryResult);
+    ok(res == 1, "GetPaletteEntries should have returned 1 but returned %d\n", res);
+
+    ok( palEntry.peFlags == getEntryResult.peFlags, "palEntry.peFlags (%#x) != getEntryResult.peFlags (%#x)\n", palEntry.peFlags, getEntryResult.peFlags );
+}
+
 START_TEST(palette)
 {
     test_DIB_PAL_COLORS();
+    test_palette_entries();
 }




More information about the wine-cvs mailing list