mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-04-03 06:09:20 +00:00
Fixed unaligned 16-bit memory access
The previous code technically works on platforms with SSE2, but this fixes an ubsan warning.
This commit is contained in:
@@ -1499,8 +1499,17 @@ static bool SDL_TARGETING("sse2") SDL_ConvertPixels_SwapNV_SSE2(int width, int h
|
||||
dstUV += 8;
|
||||
x -= 8;
|
||||
}
|
||||
while (x--) {
|
||||
*dstUV++ = SDL_Swap16(*srcUV++);
|
||||
if (x > 0) {
|
||||
const Uint8 *srcUV8 = (const Uint8 *)srcUV;
|
||||
Uint8 *dstUV8 = (Uint8 *)dstUV;
|
||||
srcUV += x;
|
||||
dstUV += x;
|
||||
while (x--) {
|
||||
Uint8 u = *srcUV8++;
|
||||
Uint8 v = *srcUV8++;
|
||||
*dstUV8++ = v;
|
||||
*dstUV8++ = u;
|
||||
}
|
||||
}
|
||||
srcUV += srcUVPitchLeft;
|
||||
dstUV += dstUVPitchLeft;
|
||||
|
||||
Reference in New Issue
Block a user