Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2874)

Unified Diff: core/src/fxcodec/jbig2/JBig2_TrdProc.cpp

Issue 1384663007: Fix regression in JBIG2 decoding from commit ce37d73. (Closed) Base URL: https://pdfium.googlesource.com/pdfium@master
Patch Set: grammar school Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « core/src/fxcodec/jbig2/JBig2_SddProc.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: core/src/fxcodec/jbig2/JBig2_TrdProc.cpp
diff --git a/core/src/fxcodec/jbig2/JBig2_TrdProc.cpp b/core/src/fxcodec/jbig2/JBig2_TrdProc.cpp
index f26bdb6706b0e9c64f58dbc24a7f6410c5781af7..368ec9b11e511ffb76145cf409742c5268e3e38e 100644
--- a/core/src/fxcodec/jbig2/JBig2_TrdProc.cpp
+++ b/core/src/fxcodec/jbig2/JBig2_TrdProc.cpp
@@ -226,7 +226,6 @@ CJBig2_Image* CJBig2_TRDProc::decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
CJBig2_Image* IBOI;
FX_DWORD WOI, HOI;
FX_BOOL bFirst;
- int32_t nRet;
int32_t bRetained;
CJBig2_ArithIntDecoder* IADT, *IAFS, *IADS, *IAIT, *IARI, *IARDW, *IARDH,
*IARDX, *IARDY;
@@ -258,72 +257,55 @@ CJBig2_Image* CJBig2_TRDProc::decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
}
nonstd::unique_ptr<CJBig2_Image> SBREG(new CJBig2_Image(SBW, SBH));
SBREG->fill(SBDEFPIXEL);
- if (!IADT->decode(pArithDecoder, &STRIPT)) {
- goto failed;
- }
+ IADT->decode(pArithDecoder, &STRIPT);
STRIPT *= SBSTRIPS;
STRIPT = -STRIPT;
FIRSTS = 0;
NINSTANCES = 0;
while (NINSTANCES < SBNUMINSTANCES) {
- if (!IADT->decode(pArithDecoder, &DT)) {
- goto failed;
- }
+ IADT->decode(pArithDecoder, &DT);
DT *= SBSTRIPS;
STRIPT = STRIPT + DT;
bFirst = TRUE;
for (;;) {
if (bFirst) {
- if (!IAFS->decode(pArithDecoder, &DFS)) {
- goto failed;
- }
+ IAFS->decode(pArithDecoder, &DFS);
FIRSTS = FIRSTS + DFS;
CURS = FIRSTS;
bFirst = FALSE;
} else {
- nRet = IADS->decode(pArithDecoder, &IDS);
- if (nRet == JBIG2_OOB) {
+ if (!IADS->decode(pArithDecoder, &IDS))
break;
- } else if (nRet != 0) {
- goto failed;
- } else {
- CURS = CURS + IDS + SBDSOFFSET;
- }
+ CURS = CURS + IDS + SBDSOFFSET;
}
if (NINSTANCES >= SBNUMINSTANCES) {
break;
}
int CURT = 0;
- if (SBSTRIPS != 1) {
- if (!IAIT->decode(pArithDecoder, &CURT)) {
- goto failed;
- }
- }
+ if (SBSTRIPS != 1)
+ IAIT->decode(pArithDecoder, &CURT);
+
TI = STRIPT + CURT;
FX_DWORD IDI;
IAID->decode(pArithDecoder, &IDI);
- if (IDI >= SBNUMSYMS) {
+ if (IDI >= SBNUMSYMS)
goto failed;
- }
- if (SBREFINE == 0) {
+
+ if (SBREFINE == 0)
RI = 0;
- } else {
- if (!IARI->decode(pArithDecoder, &RI)) {
- goto failed;
- }
- }
- if (!SBSYMS[IDI]) {
+ else
+ IARI->decode(pArithDecoder, &RI);
+
+ if (!SBSYMS[IDI])
goto failed;
- }
+
if (RI == 0) {
IBI = SBSYMS[IDI];
} else {
- if (!IARDW->decode(pArithDecoder, &RDWI) ||
- !IARDH->decode(pArithDecoder, &RDHI) ||
- !IARDX->decode(pArithDecoder, &RDXI) ||
- !IARDY->decode(pArithDecoder, &RDYI)) {
- goto failed;
- }
+ IARDW->decode(pArithDecoder, &RDWI);
+ IARDH->decode(pArithDecoder, &RDHI);
+ IARDX->decode(pArithDecoder, &RDXI);
+ IARDY->decode(pArithDecoder, &RDYI);
IBOI = SBSYMS[IDI];
WOI = IBOI->m_nWidth;
HOI = IBOI->m_nHeight;
« no previous file with comments | « core/src/fxcodec/jbig2/JBig2_SddProc.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698