Index: core/fxcodec/jbig2/JBig2_TrdProc.cpp |
diff --git a/core/fxcodec/jbig2/JBig2_TrdProc.cpp b/core/fxcodec/jbig2/JBig2_TrdProc.cpp |
index 401249e3f2e6bfcd5aa0d8874affee94243231c2..1a078a15921299b3d90e8e8a2d59a41a4877091d 100644 |
--- a/core/fxcodec/jbig2/JBig2_TrdProc.cpp |
+++ b/core/fxcodec/jbig2/JBig2_TrdProc.cpp |
@@ -15,48 +15,39 @@ |
CJBig2_Image* CJBig2_TRDProc::decode_Huffman(CJBig2_BitStream* pStream, |
JBig2ArithCtx* grContext) { |
- int32_t STRIPT, FIRSTS; |
- FX_DWORD NINSTANCES; |
- int32_t DT, DFS, CURS; |
- int32_t SI, TI; |
- CJBig2_Image* IBI; |
- FX_DWORD WI, HI; |
- int32_t IDS; |
- FX_BOOL RI; |
- int32_t RDWI, RDHI, RDXI, RDYI; |
- CJBig2_Image* IBOI; |
- FX_DWORD WOI, HOI; |
- FX_BOOL bFirst; |
- FX_DWORD nTmp; |
- int32_t nVal, nBits; |
std::unique_ptr<CJBig2_HuffmanDecoder> pHuffmanDecoder( |
new CJBig2_HuffmanDecoder(pStream)); |
std::unique_ptr<CJBig2_Image> SBREG(new CJBig2_Image(SBW, SBH)); |
SBREG->fill(SBDEFPIXEL); |
+ int32_t STRIPT; |
if (pHuffmanDecoder->decodeAValue(SBHUFFDT, &STRIPT) != 0) |
return nullptr; |
STRIPT *= SBSTRIPS; |
STRIPT = -STRIPT; |
- FIRSTS = 0; |
- NINSTANCES = 0; |
+ FX_DWORD NINSTANCES = 0; |
while (NINSTANCES < SBNUMINSTANCES) { |
+ int32_t DT; |
if (pHuffmanDecoder->decodeAValue(SBHUFFDT, &DT) != 0) |
return nullptr; |
DT *= SBSTRIPS; |
STRIPT = STRIPT + DT; |
- bFirst = TRUE; |
+ bool bFirst = true; |
+ int32_t FIRSTS = 0; |
+ int32_t CURS = 0; |
for (;;) { |
if (bFirst) { |
+ int32_t DFS; |
if (pHuffmanDecoder->decodeAValue(SBHUFFFS, &DFS) != 0) |
return nullptr; |
FIRSTS = FIRSTS + DFS; |
CURS = FIRSTS; |
- bFirst = FALSE; |
+ bFirst = false; |
} else { |
- nVal = pHuffmanDecoder->decodeAValue(SBHUFFDS, &IDS); |
+ int32_t IDS; |
+ int32_t nVal = pHuffmanDecoder->decodeAValue(SBHUFFDS, &IDS); |
if (nVal == JBIG2_OOB) { |
break; |
} else if (nVal != 0) { |
@@ -67,20 +58,22 @@ CJBig2_Image* CJBig2_TRDProc::decode_Huffman(CJBig2_BitStream* pStream, |
} |
uint8_t CURT = 0; |
if (SBSTRIPS != 1) { |
- nTmp = 1; |
+ FX_DWORD nTmp = 1; |
while ((FX_DWORD)(1 << nTmp) < SBSTRIPS) { |
nTmp++; |
} |
+ int32_t nVal; |
if (pStream->readNBits(nTmp, &nVal) != 0) |
return nullptr; |
CURT = nVal; |
} |
- TI = STRIPT + CURT; |
- nVal = 0; |
- nBits = 0; |
+ int32_t TI = STRIPT + CURT; |
+ int32_t nVal = 0; |
+ int32_t nBits = 0; |
FX_DWORD IDI; |
for (;;) { |
+ FX_DWORD nTmp; |
if (pStream->read1Bit(&nTmp) != 0) |
return nullptr; |
@@ -96,16 +89,18 @@ CJBig2_Image* CJBig2_TRDProc::decode_Huffman(CJBig2_BitStream* pStream, |
break; |
} |
} |
- if (SBREFINE == 0) { |
- RI = 0; |
- } else { |
- if (pStream->read1Bit(&RI) != 0) { |
- return nullptr; |
- } |
+ FX_BOOL RI = 0; |
+ if (SBREFINE != 0 && pStream->read1Bit(&RI) != 0) { |
+ return nullptr; |
} |
+ CJBig2_Image* IBI = nullptr; |
if (RI == 0) { |
IBI = SBSYMS[IDI]; |
} else { |
+ int32_t RDWI; |
+ int32_t RDHI; |
+ int32_t RDXI; |
+ int32_t RDYI; |
if ((pHuffmanDecoder->decodeAValue(SBHUFFRDW, &RDWI) != 0) || |
(pHuffmanDecoder->decodeAValue(SBHUFFRDH, &RDHI) != 0) || |
(pHuffmanDecoder->decodeAValue(SBHUFFRDX, &RDXI) != 0) || |
@@ -114,13 +109,13 @@ CJBig2_Image* CJBig2_TRDProc::decode_Huffman(CJBig2_BitStream* pStream, |
return nullptr; |
} |
pStream->alignByte(); |
- nTmp = pStream->getOffset(); |
- IBOI = SBSYMS[IDI]; |
+ FX_DWORD nTmp = pStream->getOffset(); |
+ CJBig2_Image* IBOI = SBSYMS[IDI]; |
if (!IBOI) |
return nullptr; |
- WOI = IBOI->m_nWidth; |
- HOI = IBOI->m_nHeight; |
+ FX_DWORD WOI = IBOI->m_nWidth; |
+ FX_DWORD HOI = IBOI->m_nHeight; |
if ((int)(WOI + RDWI) < 0 || (int)(HOI + RDHI) < 0) |
return nullptr; |
@@ -155,8 +150,8 @@ CJBig2_Image* CJBig2_TRDProc::decode_Huffman(CJBig2_BitStream* pStream, |
if (!IBI) { |
continue; |
} |
- WI = IBI->m_nWidth; |
- HI = IBI->m_nHeight; |
+ FX_DWORD WI = IBI->m_nWidth; |
+ FX_DWORD HI = IBI->m_nHeight; |
if (TRANSPOSED == 0 && ((REFCORNER == JBIG2_CORNER_TOPRIGHT) || |
(REFCORNER == JBIG2_CORNER_BOTTOMRIGHT))) { |
CURS = CURS + WI - 1; |
@@ -164,7 +159,7 @@ CJBig2_Image* CJBig2_TRDProc::decode_Huffman(CJBig2_BitStream* pStream, |
(REFCORNER == JBIG2_CORNER_BOTTOMRIGHT))) { |
CURS = CURS + HI - 1; |
} |
- SI = CURS; |
+ int32_t SI = CURS; |
if (TRANSPOSED == 0) { |
switch (REFCORNER) { |
case JBIG2_CORNER_TOPLEFT: |
@@ -277,7 +272,7 @@ CJBig2_Image* CJBig2_TRDProc::decode_Arith(CJBig2_ArithDecoder* pArithDecoder, |
int32_t FIRSTS = 0; |
FX_DWORD NINSTANCES = 0; |
while (NINSTANCES < SBNUMINSTANCES) { |
- int32_t CURS; |
+ int32_t CURS = 0; |
int32_t DT; |
pIADT->decode(pArithDecoder, &DT); |
DT *= SBSTRIPS; |