From febaf0dc8b1a57ddfa05d8409429b26b2ff066e8 Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Thu, 6 May 2021 22:01:24 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20Fix=20misaligned=20load=20in=20`?= =?UTF-8?q?GetCelFrame`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Source/engine.h | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/Source/engine.h b/Source/engine.h index 2e700d443..b22fc2a79 100644 --- a/Source/engine.h +++ b/Source/engine.h @@ -180,17 +180,15 @@ constexpr uint32_t LoadBE32(const T *b) inline byte *CelGetFrame(byte *pCelBuff, int nCel, int *nDataSize) { - auto frameTable = reinterpret_cast(pCelBuff); - const uint32_t nCellStart = SDL_SwapLE32(frameTable[nCel]); - *nDataSize = SDL_SwapLE32(frameTable[nCel + 1]) - nCellStart; + const uint32_t nCellStart = LoadLE32(&pCelBuff[nCel * sizeof(std::uint32_t)]); + *nDataSize = LoadLE32(&pCelBuff[(nCel + 1) * sizeof(std::uint32_t)]) - nCellStart; return &pCelBuff[nCellStart]; } inline const byte *CelGetFrame(const byte *pCelBuff, int nCel, int *nDataSize) { - auto frameTable = reinterpret_cast(pCelBuff); - const uint32_t nCellStart = SDL_SwapLE32(frameTable[nCel]); - *nDataSize = SDL_SwapLE32(frameTable[nCel + 1]) - nCellStart; + const uint32_t nCellStart = LoadLE32(&pCelBuff[nCel * sizeof(std::uint32_t)]); + *nDataSize = LoadLE32(&pCelBuff[(nCel + 1) * sizeof(std::uint32_t)]) - nCellStart; return &pCelBuff[nCellStart]; }