comparison include/SDL_endian.h @ 4432:77ebcd41b577

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.
author Sam Lantinga <slouken@libsdl.org>
date Tue, 13 Apr 2010 22:01:14 -0700
parents f7b03b6838cb
children ab63fdcf66af
comparison
equal deleted inserted replaced
4429:faa9fc8e7f67 4432:77ebcd41b577
101 } 101 }
102 #else 102 #else
103 static __inline__ Uint16 103 static __inline__ Uint16
104 SDL_Swap16(Uint16 x) 104 SDL_Swap16(Uint16 x)
105 { 105 {
106 return ((x << 8) | (x >> 8)); 106 return (Uint16)((x << 8) | (x >> 8));
107 } 107 }
108 #endif 108 #endif
109 109
110 #if defined(__GNUC__) && defined(__i386__) 110 #if defined(__GNUC__) && defined(__i386__)
111 static __inline__ Uint32 111 static __inline__ Uint32
141 } 141 }
142 #else 142 #else
143 static __inline__ Uint32 143 static __inline__ Uint32
144 SDL_Swap32(Uint32 x) 144 SDL_Swap32(Uint32 x)
145 { 145 {
146 return ((x << 24) | ((x << 8) & 0x00FF0000) | ((x >> 8) & 0x0000FF00) | 146 return (Uint32)((x << 24) | ((x << 8) & 0x00FF0000) |
147 (x >> 24)); 147 ((x >> 8) & 0x0000FF00) | (x >> 24));
148 } 148 }
149 #endif 149 #endif
150 150
151 #ifdef SDL_HAS_64BIT_TYPE 151 #ifdef SDL_HAS_64BIT_TYPE
152 #if defined(__GNUC__) && defined(__i386__) 152 #if defined(__GNUC__) && defined(__i386__)