mirror of
https://github.com/Ryujinx/SDL.git
synced 2025-06-21 00:07:52 +00:00
Don't crash if SDL_MapRGB() and SDL_MapRGBA() are passed a NULL format
(cherry picked from commit fadc4916a9bcc410c2148a91bf0adf742410a4ba)
This commit is contained in:
parent
170428b107
commit
0ba93e4aac
|
@ -852,6 +852,10 @@ void SDL_DetectPalette(SDL_Palette *pal, SDL_bool *is_opaque, SDL_bool *has_alph
|
||||||
/* Find the opaque pixel value corresponding to an RGB triple */
|
/* Find the opaque pixel value corresponding to an RGB triple */
|
||||||
Uint32 SDL_MapRGB(const SDL_PixelFormat *format, Uint8 r, Uint8 g, Uint8 b)
|
Uint32 SDL_MapRGB(const SDL_PixelFormat *format, Uint8 r, Uint8 g, Uint8 b)
|
||||||
{
|
{
|
||||||
|
if (!format) {
|
||||||
|
SDL_InvalidParamError("format");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
if (format->palette == NULL) {
|
if (format->palette == NULL) {
|
||||||
return (r >> format->Rloss) << format->Rshift | (g >> format->Gloss) << format->Gshift | (b >> format->Bloss) << format->Bshift | format->Amask;
|
return (r >> format->Rloss) << format->Rshift | (g >> format->Gloss) << format->Gshift | (b >> format->Bloss) << format->Bshift | format->Amask;
|
||||||
} else {
|
} else {
|
||||||
|
@ -862,6 +866,10 @@ Uint32 SDL_MapRGB(const SDL_PixelFormat *format, Uint8 r, Uint8 g, Uint8 b)
|
||||||
/* Find the pixel value corresponding to an RGBA quadruple */
|
/* Find the pixel value corresponding to an RGBA quadruple */
|
||||||
Uint32 SDL_MapRGBA(const SDL_PixelFormat *format, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
|
Uint32 SDL_MapRGBA(const SDL_PixelFormat *format, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
|
||||||
{
|
{
|
||||||
|
if (!format) {
|
||||||
|
SDL_InvalidParamError("format");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
if (format->palette == NULL) {
|
if (format->palette == NULL) {
|
||||||
return (r >> format->Rloss) << format->Rshift | (g >> format->Gloss) << format->Gshift | (b >> format->Bloss) << format->Bshift | ((Uint32)(a >> format->Aloss) << format->Ashift & format->Amask);
|
return (r >> format->Rloss) << format->Rshift | (g >> format->Gloss) << format->Gshift | (b >> format->Bloss) << format->Bshift | ((Uint32)(a >> format->Aloss) << format->Ashift & format->Amask);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue