Mercurial > sdl-ios-xcode
comparison src/video/SDL_pixels.c @ 997:3bf4103b2b89
Date: Sat, 27 Nov 2004 13:35:43 +0100
From: "Martin Bickel"
Subject: [SDL] Patch: fixing uninitilized palette
while running Valgrind over my application I found the following
problem in SDL:
The function MapNto1 allocates SDL_Color colors[256] but does not
initialize it.
SDL_DitherColors is then called which initialized the r, g and b
component, but not the 'unused' component of each color.
When Map1to1 is called from MapNto1, it runs a memcmp on the colors,
which also evaluates the unused component and therefor returns
differences much more often than necessary.
So the 'unused' component of SDL_Color should be initialized. This
patch does this by calling memset for the whole array in MapNto1 .
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 30 Nov 2004 14:28:20 +0000 |
parents | 333db1d87876 |
children | c69697a85412 |
comparison
equal
deleted
inserted
replaced
996:54bb19455081 | 997:3bf4103b2b89 |
---|---|
492 static Uint8 *MapNto1(SDL_PixelFormat *src, SDL_Palette *dst, int *identical) | 492 static Uint8 *MapNto1(SDL_PixelFormat *src, SDL_Palette *dst, int *identical) |
493 { | 493 { |
494 /* Generate a 256 color dither palette */ | 494 /* Generate a 256 color dither palette */ |
495 SDL_Palette dithered; | 495 SDL_Palette dithered; |
496 SDL_Color colors[256]; | 496 SDL_Color colors[256]; |
497 | |
498 /* SDL_DitherColors does not initialize the 'unused' component of colors, | |
499 but Map1to1 compares it against dst, so we should initialize it. */ | |
500 memset(colors, 0, sizeof(colors)); | |
497 | 501 |
498 dithered.ncolors = 256; | 502 dithered.ncolors = 256; |
499 SDL_DitherColors(colors, 8); | 503 SDL_DitherColors(colors, 8); |
500 dithered.colors = colors; | 504 dithered.colors = colors; |
501 return(Map1to1(&dithered, dst, identical)); | 505 return(Map1to1(&dithered, dst, identical)); |