From: Lauri Kenttä lauri.kentta@gmail.com
If we assume that trying a color translation is at least as good as just returning FALSE, then there's no point in cheching COLORTYPE. COLOR is union, so offsetof will be 0 anyway and can be omitted too.
Signed-off-by: Lauri Kenttä lauri.kentta@gmail.com Signed-off-by: Hans Leidekker hans@codeweavers.com --- dlls/mscms/liblcms.c | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-)
diff --git a/dlls/mscms/liblcms.c b/dlls/mscms/liblcms.c index 5dbfc463522..5710fc49b75 100644 --- a/dlls/mscms/liblcms.c +++ b/dlls/mscms/liblcms.c @@ -123,36 +123,14 @@ static BOOL CDECL lcms_translate_bits( void *transform, void *srcbits, BMFORMAT return TRUE; }
-static int lcms_offsetof_type( COLORTYPE type ) -{ - switch (type) - { - case COLOR_GRAY: return offsetof(COLOR, gray); - case COLOR_RGB: return offsetof(COLOR, rgb); - case COLOR_CMYK: return offsetof(COLOR, cmyk); - case COLOR_XYZ: return offsetof(COLOR, XYZ); - case COLOR_3_CHANNEL: return offsetof(COLOR, gen3ch); - case COLOR_Lab: return offsetof(COLOR, Lab); - default: break; - } - return -1; -} - static BOOL CDECL lcms_translate_colors( void *transform, COLOR *in, DWORD count, COLORTYPE input_type, COLOR *out, COLORTYPE output_type ) { unsigned int i; - int input_field_offset = lcms_offsetof_type( input_type ); - int output_field_offset = lcms_offsetof_type( output_type );
if (!cmsChangeBuffersFormat( transform, from_type(input_type), from_type(output_type) )) return FALSE; - if (input_field_offset == -1 || output_field_offset == -1) - { - FIXME("unhandled input/output pair: %d/%d\n", input_type, output_type); - return FALSE; - } - for (i = 0; i < count; i++) - cmsDoTransform( transform, (char*)&in[i] + input_field_offset, (char*)&out[i] + output_field_offset, 1 ); + + for (i = 0; i < count; i++) cmsDoTransform( transform, &in[i], &out[i], 1 ); return TRUE; }