Fixed bug 944

Tatu Kilappa      2010-02-11 12:13:20 PST

When compiling with -Wconversion, gcc complains about a cast in SDL_endian.h
that might change the result as we are casting from an int into an Uint16. This
is of course not visible unless we are on a non-x86 platform where the
assembler is not available.

While it's not really an error, the warning is really annoying. To fix, change
SDL_endian.h line 87 to:

  return(Uint16)((x<<8)|(x>>8));

Thank you.

--HG--
branch : SDL-1.2
This commit is contained in:
Sam Lantinga 2010-04-13 21:46:10 -07:00
parent 85582c7c3c
commit ad928a1bfd

View file

@ -94,7 +94,7 @@ static __inline__ Uint16 SDL_Swap16(Uint16 x)
} }
#else #else
static __inline__ Uint16 SDL_Swap16(Uint16 x) { static __inline__ Uint16 SDL_Swap16(Uint16 x) {
return((x<<8)|(x>>8)); return (Uint16)((x<<8)|(x>>8));
} }
#endif #endif
@ -129,7 +129,7 @@ static __inline__ Uint32 SDL_Swap32(Uint32 x)
} }
#else #else
static __inline__ Uint32 SDL_Swap32(Uint32 x) { static __inline__ Uint32 SDL_Swap32(Uint32 x) {
return((x<<24)|((x<<8)&0x00FF0000)|((x>>8)&0x0000FF00)|(x>>24)); return (Uint32)((x<<24)|((x<<8)&0x00FF0000)|((x>>8)&0x0000FF00)|(x>>24));
} }
#endif #endif
@ -166,7 +166,7 @@ static __inline__ Uint64 SDL_Swap64(Uint64 x)
x = SDL_Swap32(lo); x = SDL_Swap32(lo);
x <<= 32; x <<= 32;
x |= SDL_Swap32(hi); x |= SDL_Swap32(hi);
return(x); return (x);
} }
#endif #endif
#else #else