libfreerdp-codec: fix strict aliasing warnings in ncrush code
This commit is contained in:
parent
c492017fa1
commit
ee8c0906f0
@ -1768,6 +1768,7 @@ int ncrush_decompress(NCRUSH_CONTEXT* ncrush, BYTE* pSrcData, UINT32 SrcSize, BY
|
||||
BYTE* SrcPtr;
|
||||
BYTE* SrcEnd;
|
||||
UINT16 Mask;
|
||||
UINT16* pMask;
|
||||
BYTE Literal;
|
||||
UINT32 IndexLEC;
|
||||
UINT32 BitLength;
|
||||
@ -1829,7 +1830,8 @@ int ncrush_decompress(NCRUSH_CONTEXT* ncrush, BYTE* pSrcData, UINT32 SrcSize, BY
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
Mask = *((UINT16*) &HuffTableMask[29]);
|
||||
pMask = (UINT16*) &HuffTableMask[29];
|
||||
Mask = *pMask;
|
||||
MaskedBits = bits & Mask;
|
||||
|
||||
IndexLEC = HuffTableLEC[MaskedBits] & 0xFFF;
|
||||
@ -1869,7 +1871,8 @@ int ncrush_decompress(NCRUSH_CONTEXT* ncrush, BYTE* pSrcData, UINT32 SrcSize, BY
|
||||
|
||||
CopyOffset = ncrush->OffsetCache[OffsetCacheIndex];
|
||||
|
||||
Mask = *((UINT16*) &HuffTableMask[21]);
|
||||
pMask = (UINT16*) &HuffTableMask[21];
|
||||
Mask = *pMask;
|
||||
MaskedBits = bits & Mask;
|
||||
|
||||
LengthOfMatch = HuffTableLOM[MaskedBits] & 0xFFF;
|
||||
@ -1885,7 +1888,8 @@ int ncrush_decompress(NCRUSH_CONTEXT* ncrush, BYTE* pSrcData, UINT32 SrcSize, BY
|
||||
|
||||
if (LengthOfMatchBits)
|
||||
{
|
||||
Mask = *((UINT16*) &HuffTableMask[(2 * LengthOfMatchBits) + 3]);
|
||||
pMask = (UINT16*) &HuffTableMask[(2 * LengthOfMatchBits) + 3];
|
||||
Mask = *pMask;
|
||||
MaskedBits = bits & Mask;
|
||||
|
||||
bits >>= LengthOfMatchBits;
|
||||
@ -1908,7 +1912,8 @@ int ncrush_decompress(NCRUSH_CONTEXT* ncrush, BYTE* pSrcData, UINT32 SrcSize, BY
|
||||
|
||||
if (CopyOffsetBits)
|
||||
{
|
||||
Mask = *((UINT16*) &HuffTableMask[(2 * CopyOffsetBits) + 3]);
|
||||
pMask = (UINT16*) &HuffTableMask[(2 * CopyOffsetBits) + 3];
|
||||
Mask = *pMask;
|
||||
MaskedBits = bits & Mask;
|
||||
|
||||
CopyOffset = CopyOffsetBase + MaskedBits - 1;
|
||||
@ -1919,7 +1924,8 @@ int ncrush_decompress(NCRUSH_CONTEXT* ncrush, BYTE* pSrcData, UINT32 SrcSize, BY
|
||||
NCrushFetchBits();
|
||||
}
|
||||
|
||||
Mask = *((UINT16*) &HuffTableMask[21]);
|
||||
pMask = (UINT16*) &HuffTableMask[21];
|
||||
Mask = *pMask;
|
||||
MaskedBits = bits & Mask;
|
||||
|
||||
LengthOfMatch = HuffTableLOM[MaskedBits] & 0xFFF;
|
||||
@ -1935,7 +1941,8 @@ int ncrush_decompress(NCRUSH_CONTEXT* ncrush, BYTE* pSrcData, UINT32 SrcSize, BY
|
||||
|
||||
if (LengthOfMatchBits)
|
||||
{
|
||||
Mask = *((UINT16*) &HuffTableMask[(2 * LengthOfMatchBits) + 3]);
|
||||
pMask = (UINT16*) &HuffTableMask[(2 * LengthOfMatchBits) + 3];
|
||||
Mask = *pMask;
|
||||
MaskedBits = bits & Mask;
|
||||
|
||||
bits >>= LengthOfMatchBits;
|
||||
@ -2248,6 +2255,7 @@ int ncrush_compress(NCRUSH_CONTEXT* ncrush, BYTE* pSrcData, UINT32 SrcSize, BYTE
|
||||
UINT32 IndexLOM;
|
||||
UINT32 IndexCO;
|
||||
UINT32 CodeLEC;
|
||||
UINT16* pCodeLEC;
|
||||
UINT32 BitLength;
|
||||
UINT32 CopyOffset;
|
||||
UINT32 MatchOffset;
|
||||
@ -2367,7 +2375,8 @@ int ncrush_compress(NCRUSH_CONTEXT* ncrush, BYTE* pSrcData, UINT32 SrcSize, BYTE
|
||||
|
||||
IndexLEC = Literal;
|
||||
BitLength = HuffLengthLEC[IndexLEC];
|
||||
CodeLEC = *((UINT16*) &HuffCodeLEC[IndexLEC * 2]);
|
||||
pCodeLEC = (UINT16*) &HuffCodeLEC[IndexLEC * 2];
|
||||
CodeLEC = (UINT32) *pCodeLEC;
|
||||
|
||||
if (BitLength > 15)
|
||||
return -1006;
|
||||
@ -2454,7 +2463,8 @@ int ncrush_compress(NCRUSH_CONTEXT* ncrush, BYTE* pSrcData, UINT32 SrcSize, BYTE
|
||||
|
||||
IndexLEC = 257 + CopyOffsetIndex;
|
||||
BitLength = HuffLengthLEC[IndexLEC];
|
||||
CodeLEC = *((UINT16*) &HuffCodeLEC[IndexLEC * 2]);
|
||||
pCodeLEC = (UINT16*) &HuffCodeLEC[IndexLEC * 2];
|
||||
CodeLEC = (UINT32) *pCodeLEC;
|
||||
|
||||
if (BitLength > 15)
|
||||
return -1008;
|
||||
@ -2493,7 +2503,8 @@ int ncrush_compress(NCRUSH_CONTEXT* ncrush, BYTE* pSrcData, UINT32 SrcSize, BYTE
|
||||
|
||||
IndexLEC = 289 + OffsetCacheIndex;
|
||||
BitLength = HuffLengthLEC[IndexLEC];
|
||||
CodeLEC = *((UINT16*) &HuffCodeLEC[IndexLEC * 2]);
|
||||
pCodeLEC = (UINT16*) &HuffCodeLEC[IndexLEC * 2];
|
||||
CodeLEC = (UINT32) *pCodeLEC;
|
||||
|
||||
if (BitLength >= 15)
|
||||
return -1011;
|
||||
@ -2541,7 +2552,8 @@ int ncrush_compress(NCRUSH_CONTEXT* ncrush, BYTE* pSrcData, UINT32 SrcSize, BYTE
|
||||
|
||||
IndexLEC = Literal;
|
||||
BitLength = HuffLengthLEC[IndexLEC];
|
||||
CodeLEC = *((UINT16*) &HuffCodeLEC[IndexLEC * 2]);
|
||||
pCodeLEC = (UINT16*) &HuffCodeLEC[IndexLEC * 2];
|
||||
CodeLEC = (UINT32) *pCodeLEC;
|
||||
|
||||
if (BitLength > 15)
|
||||
return -1014;
|
||||
@ -2565,7 +2577,8 @@ int ncrush_compress(NCRUSH_CONTEXT* ncrush, BYTE* pSrcData, UINT32 SrcSize, BYTE
|
||||
if (BitLength > 15)
|
||||
return -1015;
|
||||
|
||||
bits = *((UINT16*) &HuffCodeLEC[IndexLEC * 2]);
|
||||
pCodeLEC = (UINT16*) &HuffCodeLEC[IndexLEC * 2];
|
||||
bits = (UINT32) *pCodeLEC;
|
||||
|
||||
NCrushWriteBits(bits, BitLength);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user