Re: Fix GDI_PAL_COLORS crash.
"Glenn Wurster" <gwurster(a)scs.carleton.ca> wrote:
GDI_PAL_COLORS is composed of 16 bit indexes, we only got the first 256 colours. Instead of making a copy of possibly 65535 different palette entries in the logical palette, get a pointer and build up the dib colours as needed. Yes, the % is how windows works. Yes, conformance tests are in the queue of patches to be submitted.
GDI_GetObjPtr/GDI_ReleaseObj are the DLL separation hacks and will be removed eventually from GDI32 exports. You need to make a copy of all palette entries anyway. Perhaps the following code is a better solution: colors = GetPaletteEntries(hpal, 0, 0, NULL); pal_ents = HeapAlloc(GetProcessHeap(), 0, colors * sizeof(*pal_ents)); colors = GetPaletteEntries(hpal, 0, colors, pal_ents); for(i = 0; i < colors; i++, index++) { ... } HeapFree(GetProcessHeap(), 0, pal_ents); -- Dmitry.
participants (1)
-
Dmitry Timoshkov