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

Side by Side Diff: core/src/fxcodec/jbig2/JBig2_SddProc.cpp

Issue 1544923002: Start using allowed C++11 features. (Closed) Base URL: https://pdfium.googlesource.com/pdfium@master
Patch Set: Created 5 years 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 unified diff | Download patch
« no previous file with comments | « core/src/fxcodec/jbig2/JBig2_Context.cpp ('k') | core/src/fxge/ge/fx_ge_fontmap.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 PDFium Authors. All rights reserved. 1 // Copyright 2015 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "core/src/fxcodec/jbig2/JBig2_SddProc.h" 7 #include "core/src/fxcodec/jbig2/JBig2_SddProc.h"
8 8
9 #include <vector> 9 #include <vector>
10 10
11 #include "core/include/fxcrt/fx_basic.h" 11 #include "core/include/fxcrt/fx_basic.h"
12 #include "core/src/fxcodec/jbig2/JBig2_ArithIntDecoder.h" 12 #include "core/src/fxcodec/jbig2/JBig2_ArithIntDecoder.h"
13 #include "core/src/fxcodec/jbig2/JBig2_GrdProc.h" 13 #include "core/src/fxcodec/jbig2/JBig2_GrdProc.h"
14 #include "core/src/fxcodec/jbig2/JBig2_GrrdProc.h" 14 #include "core/src/fxcodec/jbig2/JBig2_GrrdProc.h"
15 #include "core/src/fxcodec/jbig2/JBig2_HuffmanDecoder.h" 15 #include "core/src/fxcodec/jbig2/JBig2_HuffmanDecoder.h"
16 #include "core/src/fxcodec/jbig2/JBig2_HuffmanTable.h" 16 #include "core/src/fxcodec/jbig2/JBig2_HuffmanTable.h"
17 #include "core/src/fxcodec/jbig2/JBig2_HuffmanTable_Standard.h" 17 #include "core/src/fxcodec/jbig2/JBig2_HuffmanTable_Standard.h"
18 #include "core/src/fxcodec/jbig2/JBig2_SymbolDict.h" 18 #include "core/src/fxcodec/jbig2/JBig2_SymbolDict.h"
19 #include "core/src/fxcodec/jbig2/JBig2_TrdProc.h" 19 #include "core/src/fxcodec/jbig2/JBig2_TrdProc.h"
20 #include "third_party/base/nonstd_unique_ptr.h" 20 #include "third_party/base/nonstd_unique_ptr.h"
21 #include "third_party/base/stl_util.h"
22
23 using pdfium::vector_as_array;
24 21
25 CJBig2_SymbolDict* CJBig2_SDDProc::decode_Arith( 22 CJBig2_SymbolDict* CJBig2_SDDProc::decode_Arith(
26 CJBig2_ArithDecoder* pArithDecoder, 23 CJBig2_ArithDecoder* pArithDecoder,
27 std::vector<JBig2ArithCtx>* gbContext, 24 std::vector<JBig2ArithCtx>* gbContext,
28 std::vector<JBig2ArithCtx>* grContext) { 25 std::vector<JBig2ArithCtx>* grContext) {
29 CJBig2_Image** SDNEWSYMS; 26 CJBig2_Image** SDNEWSYMS;
30 FX_DWORD HCHEIGHT, NSYMSDECODED; 27 FX_DWORD HCHEIGHT, NSYMSDECODED;
31 int32_t HCDH; 28 int32_t HCDH;
32 FX_DWORD SYMWIDTH, TOTWIDTH; 29 FX_DWORD SYMWIDTH, TOTWIDTH;
33 int32_t DW; 30 int32_t DW;
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 pGRD->TPGDON = 0; 100 pGRD->TPGDON = 0;
104 pGRD->USESKIP = 0; 101 pGRD->USESKIP = 0;
105 pGRD->GBAT[0] = SDAT[0]; 102 pGRD->GBAT[0] = SDAT[0];
106 pGRD->GBAT[1] = SDAT[1]; 103 pGRD->GBAT[1] = SDAT[1];
107 pGRD->GBAT[2] = SDAT[2]; 104 pGRD->GBAT[2] = SDAT[2];
108 pGRD->GBAT[3] = SDAT[3]; 105 pGRD->GBAT[3] = SDAT[3];
109 pGRD->GBAT[4] = SDAT[4]; 106 pGRD->GBAT[4] = SDAT[4];
110 pGRD->GBAT[5] = SDAT[5]; 107 pGRD->GBAT[5] = SDAT[5];
111 pGRD->GBAT[6] = SDAT[6]; 108 pGRD->GBAT[6] = SDAT[6];
112 pGRD->GBAT[7] = SDAT[7]; 109 pGRD->GBAT[7] = SDAT[7];
113 BS = pGRD->decode_Arith(pArithDecoder, vector_as_array(gbContext)); 110 BS = pGRD->decode_Arith(pArithDecoder, gbContext->data());
114 if (!BS) { 111 if (!BS) {
115 goto failed; 112 goto failed;
116 } 113 }
117 } else { 114 } else {
118 IAAI->decode(pArithDecoder, (int*)&REFAGGNINST); 115 IAAI->decode(pArithDecoder, (int*)&REFAGGNINST);
119 if (REFAGGNINST > 1) { 116 if (REFAGGNINST > 1) {
120 nonstd::unique_ptr<CJBig2_TRDProc> pDecoder(new CJBig2_TRDProc()); 117 nonstd::unique_ptr<CJBig2_TRDProc> pDecoder(new CJBig2_TRDProc());
121 pDecoder->SBHUFF = SDHUFF; 118 pDecoder->SBHUFF = SDHUFF;
122 pDecoder->SBREFINE = 1; 119 pDecoder->SBREFINE = 1;
123 pDecoder->SBW = SYMWIDTH; 120 pDecoder->SBW = SYMWIDTH;
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 ids.IADT = IADT.get(); 188 ids.IADT = IADT.get();
192 ids.IAFS = IAFS.get(); 189 ids.IAFS = IAFS.get();
193 ids.IADS = IADS.get(); 190 ids.IADS = IADS.get();
194 ids.IAIT = IAIT.get(); 191 ids.IAIT = IAIT.get();
195 ids.IARI = IARI.get(); 192 ids.IARI = IARI.get();
196 ids.IARDW = IARDW.get(); 193 ids.IARDW = IARDW.get();
197 ids.IARDH = IARDH.get(); 194 ids.IARDH = IARDH.get();
198 ids.IARDX = IARDX.get(); 195 ids.IARDX = IARDX.get();
199 ids.IARDY = IARDY.get(); 196 ids.IARDY = IARDY.get();
200 ids.IAID = IAID.get(); 197 ids.IAID = IAID.get();
201 BS = pDecoder->decode_Arith(pArithDecoder, vector_as_array(grContext), 198 BS = pDecoder->decode_Arith(pArithDecoder, grContext->data(), &ids);
202 &ids);
203 if (!BS) { 199 if (!BS) {
204 FX_Free(SBSYMS); 200 FX_Free(SBSYMS);
205 goto failed; 201 goto failed;
206 } 202 }
207 FX_Free(SBSYMS); 203 FX_Free(SBSYMS);
208 } else if (REFAGGNINST == 1) { 204 } else if (REFAGGNINST == 1) {
209 SBNUMSYMS = SDNUMINSYMS + NSYMSDECODED; 205 SBNUMSYMS = SDNUMINSYMS + NSYMSDECODED;
210 FX_DWORD IDI; 206 FX_DWORD IDI;
211 IAID->decode(pArithDecoder, &IDI); 207 IAID->decode(pArithDecoder, &IDI);
212 IARDX->decode(pArithDecoder, &RDXI); 208 IARDX->decode(pArithDecoder, &RDXI);
(...skipping 14 matching lines...) Expand all
227 pGRRD->GRH = HCHEIGHT; 223 pGRRD->GRH = HCHEIGHT;
228 pGRRD->GRTEMPLATE = SDRTEMPLATE; 224 pGRRD->GRTEMPLATE = SDRTEMPLATE;
229 pGRRD->GRREFERENCE = SBSYMS[IDI]; 225 pGRRD->GRREFERENCE = SBSYMS[IDI];
230 pGRRD->GRREFERENCEDX = RDXI; 226 pGRRD->GRREFERENCEDX = RDXI;
231 pGRRD->GRREFERENCEDY = RDYI; 227 pGRRD->GRREFERENCEDY = RDYI;
232 pGRRD->TPGRON = 0; 228 pGRRD->TPGRON = 0;
233 pGRRD->GRAT[0] = SDRAT[0]; 229 pGRRD->GRAT[0] = SDRAT[0];
234 pGRRD->GRAT[1] = SDRAT[1]; 230 pGRRD->GRAT[1] = SDRAT[1];
235 pGRRD->GRAT[2] = SDRAT[2]; 231 pGRRD->GRAT[2] = SDRAT[2];
236 pGRRD->GRAT[3] = SDRAT[3]; 232 pGRRD->GRAT[3] = SDRAT[3];
237 BS = pGRRD->decode(pArithDecoder, vector_as_array(grContext)); 233 BS = pGRRD->decode(pArithDecoder, grContext->data());
238 if (!BS) { 234 if (!BS) {
239 FX_Free(SBSYMS); 235 FX_Free(SBSYMS);
240 goto failed; 236 goto failed;
241 } 237 }
242 FX_Free(SBSYMS); 238 FX_Free(SBSYMS);
243 } 239 }
244 } 240 }
245 SDNEWSYMS[NSYMSDECODED] = BS; 241 SDNEWSYMS[NSYMSDECODED] = BS;
246 BS = nullptr; 242 BS = nullptr;
247 NSYMSDECODED = NSYMSDECODED + 1; 243 NSYMSDECODED = NSYMSDECODED + 1;
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 pDecoder->SBHUFFRDW = SBHUFFRDW.get(); 437 pDecoder->SBHUFFRDW = SBHUFFRDW.get();
442 pDecoder->SBHUFFRDH = SBHUFFRDH.get(); 438 pDecoder->SBHUFFRDH = SBHUFFRDH.get();
443 pDecoder->SBHUFFRDX = SBHUFFRDX.get(); 439 pDecoder->SBHUFFRDX = SBHUFFRDX.get();
444 pDecoder->SBHUFFRDY = SBHUFFRDY.get(); 440 pDecoder->SBHUFFRDY = SBHUFFRDY.get();
445 pDecoder->SBHUFFRSIZE = SBHUFFRSIZE.get(); 441 pDecoder->SBHUFFRSIZE = SBHUFFRSIZE.get();
446 pDecoder->SBRTEMPLATE = SDRTEMPLATE; 442 pDecoder->SBRTEMPLATE = SDRTEMPLATE;
447 pDecoder->SBRAT[0] = SDRAT[0]; 443 pDecoder->SBRAT[0] = SDRAT[0];
448 pDecoder->SBRAT[1] = SDRAT[1]; 444 pDecoder->SBRAT[1] = SDRAT[1];
449 pDecoder->SBRAT[2] = SDRAT[2]; 445 pDecoder->SBRAT[2] = SDRAT[2];
450 pDecoder->SBRAT[3] = SDRAT[3]; 446 pDecoder->SBRAT[3] = SDRAT[3];
451 BS = pDecoder->decode_Huffman(pStream, vector_as_array(grContext)); 447 BS = pDecoder->decode_Huffman(pStream, grContext->data());
452 if (!BS) { 448 if (!BS) {
453 FX_Free(SBSYMCODES); 449 FX_Free(SBSYMCODES);
454 FX_Free(SBSYMS); 450 FX_Free(SBSYMS);
455 goto failed; 451 goto failed;
456 } 452 }
457 FX_Free(SBSYMCODES); 453 FX_Free(SBSYMCODES);
458 FX_Free(SBSYMS); 454 FX_Free(SBSYMS);
459 } else if (REFAGGNINST == 1) { 455 } else if (REFAGGNINST == 1) {
460 SBNUMSYMS = SDNUMINSYMS + SDNUMNEWSYMS; 456 SBNUMSYMS = SDNUMINSYMS + SDNUMNEWSYMS;
461 nTmp = 1; 457 nTmp = 1;
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 pGRRD->GRREFERENCE = SBSYMS[IDI]; 509 pGRRD->GRREFERENCE = SBSYMS[IDI];
514 pGRRD->GRREFERENCEDX = RDXI; 510 pGRRD->GRREFERENCEDX = RDXI;
515 pGRRD->GRREFERENCEDY = RDYI; 511 pGRRD->GRREFERENCEDY = RDYI;
516 pGRRD->TPGRON = 0; 512 pGRRD->TPGRON = 0;
517 pGRRD->GRAT[0] = SDRAT[0]; 513 pGRRD->GRAT[0] = SDRAT[0];
518 pGRRD->GRAT[1] = SDRAT[1]; 514 pGRRD->GRAT[1] = SDRAT[1];
519 pGRRD->GRAT[2] = SDRAT[2]; 515 pGRRD->GRAT[2] = SDRAT[2];
520 pGRRD->GRAT[3] = SDRAT[3]; 516 pGRRD->GRAT[3] = SDRAT[3];
521 nonstd::unique_ptr<CJBig2_ArithDecoder> pArithDecoder( 517 nonstd::unique_ptr<CJBig2_ArithDecoder> pArithDecoder(
522 new CJBig2_ArithDecoder(pStream)); 518 new CJBig2_ArithDecoder(pStream));
523 BS = pGRRD->decode(pArithDecoder.get(), vector_as_array(grContext)); 519 BS = pGRRD->decode(pArithDecoder.get(), grContext->data());
524 if (!BS) { 520 if (!BS) {
525 FX_Free(SBSYMS); 521 FX_Free(SBSYMS);
526 goto failed; 522 goto failed;
527 } 523 }
528 pStream->alignByte(); 524 pStream->alignByte();
529 pStream->offset(2); 525 pStream->offset(2);
530 if ((FX_DWORD)nVal != (pStream->getOffset() - nTmp)) { 526 if ((FX_DWORD)nVal != (pStream->getOffset() - nTmp)) {
531 delete BS; 527 delete BS;
532 FX_Free(SBSYMS); 528 FX_Free(SBSYMS);
533 goto failed; 529 goto failed;
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 failed: 621 failed:
626 for (I = 0; I < NSYMSDECODED; I++) { 622 for (I = 0; I < NSYMSDECODED; I++) {
627 delete SDNEWSYMS[I]; 623 delete SDNEWSYMS[I];
628 } 624 }
629 FX_Free(SDNEWSYMS); 625 FX_Free(SDNEWSYMS);
630 if (SDREFAGG == 0) { 626 if (SDREFAGG == 0) {
631 FX_Free(SDNEWSYMWIDTHS); 627 FX_Free(SDNEWSYMWIDTHS);
632 } 628 }
633 return nullptr; 629 return nullptr;
634 } 630 }
OLDNEW
« no previous file with comments | « core/src/fxcodec/jbig2/JBig2_Context.cpp ('k') | core/src/fxge/ge/fx_ge_fontmap.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698