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

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

Issue 1814233005: Make a few more const tables smaller. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: format Created 4 years, 9 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 unified diff | Download patch
« no previous file with comments | « core/fxcodec/jbig2/JBig2_HuffmanTable_Standard.cpp ('k') | core/include/fxcrt/fx_arb.h » ('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/fxcodec/jbig2/JBig2_SddProc.h" 7 #include "core/fxcodec/jbig2/JBig2_SddProc.h"
8 8
9 #include <memory> 9 #include <memory>
10 #include <vector> 10 #include <vector>
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 JBIG2_memcpy(SBSYMS, SDINSYMS, SDNUMINSYMS * sizeof(CJBig2_Image*)); 133 JBIG2_memcpy(SBSYMS, SDINSYMS, SDNUMINSYMS * sizeof(CJBig2_Image*));
134 JBIG2_memcpy(SBSYMS + SDNUMINSYMS, SDNEWSYMS, 134 JBIG2_memcpy(SBSYMS + SDNUMINSYMS, SDNEWSYMS,
135 NSYMSDECODED * sizeof(CJBig2_Image*)); 135 NSYMSDECODED * sizeof(CJBig2_Image*));
136 pDecoder->SBSYMS = SBSYMS; 136 pDecoder->SBSYMS = SBSYMS;
137 pDecoder->SBDEFPIXEL = 0; 137 pDecoder->SBDEFPIXEL = 0;
138 pDecoder->SBCOMBOP = JBIG2_COMPOSE_OR; 138 pDecoder->SBCOMBOP = JBIG2_COMPOSE_OR;
139 pDecoder->TRANSPOSED = 0; 139 pDecoder->TRANSPOSED = 0;
140 pDecoder->REFCORNER = JBIG2_CORNER_TOPLEFT; 140 pDecoder->REFCORNER = JBIG2_CORNER_TOPLEFT;
141 pDecoder->SBDSOFFSET = 0; 141 pDecoder->SBDSOFFSET = 0;
142 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFFS(new CJBig2_HuffmanTable( 142 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFFS(new CJBig2_HuffmanTable(
143 HuffmanTable_B6, FX_ArraySize(HuffmanTable_B6), 143 HuffmanTable_B6, HuffmanTable_B6_Size, HuffmanTable_HTOOB_B6));
144 HuffmanTable_HTOOB_B6));
145 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFDS(new CJBig2_HuffmanTable( 144 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFDS(new CJBig2_HuffmanTable(
146 HuffmanTable_B8, FX_ArraySize(HuffmanTable_B8), 145 HuffmanTable_B8, HuffmanTable_B8_Size, HuffmanTable_HTOOB_B8));
147 HuffmanTable_HTOOB_B8));
148 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFDT(new CJBig2_HuffmanTable( 146 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFDT(new CJBig2_HuffmanTable(
149 HuffmanTable_B11, FX_ArraySize(HuffmanTable_B11), 147 HuffmanTable_B11, HuffmanTable_B11_Size, HuffmanTable_HTOOB_B11));
150 HuffmanTable_HTOOB_B11));
151 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRDW( 148 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRDW(
152 new CJBig2_HuffmanTable(HuffmanTable_B15, 149 new CJBig2_HuffmanTable(HuffmanTable_B15, HuffmanTable_B15_Size,
153 FX_ArraySize(HuffmanTable_B15),
154 HuffmanTable_HTOOB_B15)); 150 HuffmanTable_HTOOB_B15));
155 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRDH( 151 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRDH(
156 new CJBig2_HuffmanTable(HuffmanTable_B15, 152 new CJBig2_HuffmanTable(HuffmanTable_B15, HuffmanTable_B15_Size,
157 FX_ArraySize(HuffmanTable_B15),
158 HuffmanTable_HTOOB_B15)); 153 HuffmanTable_HTOOB_B15));
159 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRDX( 154 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRDX(
160 new CJBig2_HuffmanTable(HuffmanTable_B15, 155 new CJBig2_HuffmanTable(HuffmanTable_B15, HuffmanTable_B15_Size,
161 FX_ArraySize(HuffmanTable_B15),
162 HuffmanTable_HTOOB_B15)); 156 HuffmanTable_HTOOB_B15));
163 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRDY( 157 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRDY(
164 new CJBig2_HuffmanTable(HuffmanTable_B15, 158 new CJBig2_HuffmanTable(HuffmanTable_B15, HuffmanTable_B15_Size,
165 FX_ArraySize(HuffmanTable_B15),
166 HuffmanTable_HTOOB_B15)); 159 HuffmanTable_HTOOB_B15));
167 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRSIZE( 160 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRSIZE(
168 new CJBig2_HuffmanTable(HuffmanTable_B1, 161 new CJBig2_HuffmanTable(HuffmanTable_B1, HuffmanTable_B1_Size,
169 FX_ArraySize(HuffmanTable_B1),
170 HuffmanTable_HTOOB_B1)); 162 HuffmanTable_HTOOB_B1));
171 pDecoder->SBHUFFFS = SBHUFFFS.get(); 163 pDecoder->SBHUFFFS = SBHUFFFS.get();
172 pDecoder->SBHUFFDS = SBHUFFDS.get(); 164 pDecoder->SBHUFFDS = SBHUFFDS.get();
173 pDecoder->SBHUFFDT = SBHUFFDT.get(); 165 pDecoder->SBHUFFDT = SBHUFFDT.get();
174 pDecoder->SBHUFFRDW = SBHUFFRDW.get(); 166 pDecoder->SBHUFFRDW = SBHUFFRDW.get();
175 pDecoder->SBHUFFRDH = SBHUFFRDH.get(); 167 pDecoder->SBHUFFRDH = SBHUFFRDH.get();
176 pDecoder->SBHUFFRDX = SBHUFFRDX.get(); 168 pDecoder->SBHUFFRDX = SBHUFFRDX.get();
177 pDecoder->SBHUFFRDY = SBHUFFRDY.get(); 169 pDecoder->SBHUFFRDY = SBHUFFRDY.get();
178 pDecoder->SBHUFFRSIZE = SBHUFFRSIZE.get(); 170 pDecoder->SBHUFFRSIZE = SBHUFFRSIZE.get();
179 pDecoder->SBRTEMPLATE = SDRTEMPLATE; 171 pDecoder->SBRTEMPLATE = SDRTEMPLATE;
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 JBIG2_memcpy(SBSYMS, SDINSYMS, SDNUMINSYMS * sizeof(CJBig2_Image*)); 382 JBIG2_memcpy(SBSYMS, SDINSYMS, SDNUMINSYMS * sizeof(CJBig2_Image*));
391 JBIG2_memcpy(SBSYMS + SDNUMINSYMS, SDNEWSYMS, 383 JBIG2_memcpy(SBSYMS + SDNUMINSYMS, SDNEWSYMS,
392 NSYMSDECODED * sizeof(CJBig2_Image*)); 384 NSYMSDECODED * sizeof(CJBig2_Image*));
393 pDecoder->SBSYMS = SBSYMS; 385 pDecoder->SBSYMS = SBSYMS;
394 pDecoder->SBDEFPIXEL = 0; 386 pDecoder->SBDEFPIXEL = 0;
395 pDecoder->SBCOMBOP = JBIG2_COMPOSE_OR; 387 pDecoder->SBCOMBOP = JBIG2_COMPOSE_OR;
396 pDecoder->TRANSPOSED = 0; 388 pDecoder->TRANSPOSED = 0;
397 pDecoder->REFCORNER = JBIG2_CORNER_TOPLEFT; 389 pDecoder->REFCORNER = JBIG2_CORNER_TOPLEFT;
398 pDecoder->SBDSOFFSET = 0; 390 pDecoder->SBDSOFFSET = 0;
399 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFFS(new CJBig2_HuffmanTable( 391 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFFS(new CJBig2_HuffmanTable(
400 HuffmanTable_B6, FX_ArraySize(HuffmanTable_B6), 392 HuffmanTable_B6, HuffmanTable_B6_Size, HuffmanTable_HTOOB_B6));
401 HuffmanTable_HTOOB_B6));
402 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFDS(new CJBig2_HuffmanTable( 393 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFDS(new CJBig2_HuffmanTable(
403 HuffmanTable_B8, FX_ArraySize(HuffmanTable_B8), 394 HuffmanTable_B8, HuffmanTable_B8_Size, HuffmanTable_HTOOB_B8));
404 HuffmanTable_HTOOB_B8));
405 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFDT(new CJBig2_HuffmanTable( 395 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFDT(new CJBig2_HuffmanTable(
406 HuffmanTable_B11, FX_ArraySize(HuffmanTable_B11), 396 HuffmanTable_B11, HuffmanTable_B11_Size, HuffmanTable_HTOOB_B11));
407 HuffmanTable_HTOOB_B11));
408 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRDW( 397 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRDW(
409 new CJBig2_HuffmanTable(HuffmanTable_B15, 398 new CJBig2_HuffmanTable(HuffmanTable_B15, HuffmanTable_B15_Size,
410 FX_ArraySize(HuffmanTable_B15),
411 HuffmanTable_HTOOB_B15)); 399 HuffmanTable_HTOOB_B15));
412 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRDH( 400 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRDH(
413 new CJBig2_HuffmanTable(HuffmanTable_B15, 401 new CJBig2_HuffmanTable(HuffmanTable_B15, HuffmanTable_B15_Size,
414 FX_ArraySize(HuffmanTable_B15),
415 HuffmanTable_HTOOB_B15)); 402 HuffmanTable_HTOOB_B15));
416 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRDX( 403 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRDX(
417 new CJBig2_HuffmanTable(HuffmanTable_B15, 404 new CJBig2_HuffmanTable(HuffmanTable_B15, HuffmanTable_B15_Size,
418 FX_ArraySize(HuffmanTable_B15),
419 HuffmanTable_HTOOB_B15)); 405 HuffmanTable_HTOOB_B15));
420 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRDY( 406 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRDY(
421 new CJBig2_HuffmanTable(HuffmanTable_B15, 407 new CJBig2_HuffmanTable(HuffmanTable_B15, HuffmanTable_B15_Size,
422 FX_ArraySize(HuffmanTable_B15),
423 HuffmanTable_HTOOB_B15)); 408 HuffmanTable_HTOOB_B15));
424 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRSIZE( 409 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRSIZE(
425 new CJBig2_HuffmanTable(HuffmanTable_B1, 410 new CJBig2_HuffmanTable(HuffmanTable_B1, HuffmanTable_B1_Size,
426 FX_ArraySize(HuffmanTable_B1),
427 HuffmanTable_HTOOB_B1)); 411 HuffmanTable_HTOOB_B1));
428 pDecoder->SBHUFFFS = SBHUFFFS.get(); 412 pDecoder->SBHUFFFS = SBHUFFFS.get();
429 pDecoder->SBHUFFDS = SBHUFFDS.get(); 413 pDecoder->SBHUFFDS = SBHUFFDS.get();
430 pDecoder->SBHUFFDT = SBHUFFDT.get(); 414 pDecoder->SBHUFFDT = SBHUFFDT.get();
431 pDecoder->SBHUFFRDW = SBHUFFRDW.get(); 415 pDecoder->SBHUFFRDW = SBHUFFRDW.get();
432 pDecoder->SBHUFFRDH = SBHUFFRDH.get(); 416 pDecoder->SBHUFFRDH = SBHUFFRDH.get();
433 pDecoder->SBHUFFRDX = SBHUFFRDX.get(); 417 pDecoder->SBHUFFRDX = SBHUFFRDX.get();
434 pDecoder->SBHUFFRDY = SBHUFFRDY.get(); 418 pDecoder->SBHUFFRDY = SBHUFFRDY.get();
435 pDecoder->SBHUFFRSIZE = SBHUFFRSIZE.get(); 419 pDecoder->SBHUFFRSIZE = SBHUFFRSIZE.get();
436 pDecoder->SBRTEMPLATE = SDRTEMPLATE; 420 pDecoder->SBRTEMPLATE = SDRTEMPLATE;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 (nBits == SBSYMCODES[IDI].codelen)) { 455 (nBits == SBSYMCODES[IDI].codelen)) {
472 break; 456 break;
473 } 457 }
474 } 458 }
475 if (IDI < SBNUMSYMS) { 459 if (IDI < SBNUMSYMS) {
476 break; 460 break;
477 } 461 }
478 } 462 }
479 FX_Free(SBSYMCODES); 463 FX_Free(SBSYMCODES);
480 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRDX( 464 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRDX(
481 new CJBig2_HuffmanTable(HuffmanTable_B15, 465 new CJBig2_HuffmanTable(HuffmanTable_B15, HuffmanTable_B15_Size,
482 FX_ArraySize(HuffmanTable_B15),
483 HuffmanTable_HTOOB_B15)); 466 HuffmanTable_HTOOB_B15));
484 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRSIZE( 467 std::unique_ptr<CJBig2_HuffmanTable> SBHUFFRSIZE(
485 new CJBig2_HuffmanTable(HuffmanTable_B1, 468 new CJBig2_HuffmanTable(HuffmanTable_B1, HuffmanTable_B1_Size,
486 FX_ArraySize(HuffmanTable_B1),
487 HuffmanTable_HTOOB_B1)); 469 HuffmanTable_HTOOB_B1));
488 if ((pHuffmanDecoder->decodeAValue(SBHUFFRDX.get(), &RDXI) != 0) || 470 if ((pHuffmanDecoder->decodeAValue(SBHUFFRDX.get(), &RDXI) != 0) ||
489 (pHuffmanDecoder->decodeAValue(SBHUFFRDX.get(), &RDYI) != 0) || 471 (pHuffmanDecoder->decodeAValue(SBHUFFRDX.get(), &RDYI) != 0) ||
490 (pHuffmanDecoder->decodeAValue(SBHUFFRSIZE.get(), &nVal) != 0)) { 472 (pHuffmanDecoder->decodeAValue(SBHUFFRSIZE.get(), &nVal) != 0)) {
491 goto failed; 473 goto failed;
492 } 474 }
493 pStream->alignByte(); 475 pStream->alignByte();
494 nTmp = pStream->getOffset(); 476 nTmp = pStream->getOffset();
495 SBSYMS = FX_Alloc(CJBig2_Image*, SBNUMSYMS); 477 SBSYMS = FX_Alloc(CJBig2_Image*, SBNUMSYMS);
496 JBIG2_memcpy(SBSYMS, SDINSYMS, SDNUMINSYMS * sizeof(CJBig2_Image*)); 478 JBIG2_memcpy(SBSYMS, SDINSYMS, SDNUMINSYMS * sizeof(CJBig2_Image*));
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 for (I = HCFIRSTSYM; I < NSYMSDECODED; I++) { 548 for (I = HCFIRSTSYM; I < NSYMSDECODED; I++) {
567 SDNEWSYMS[I] = BHC->subImage(nTmp, 0, SDNEWSYMWIDTHS[I], HCHEIGHT); 549 SDNEWSYMS[I] = BHC->subImage(nTmp, 0, SDNEWSYMWIDTHS[I], HCHEIGHT);
568 nTmp += SDNEWSYMWIDTHS[I]; 550 nTmp += SDNEWSYMWIDTHS[I];
569 } 551 }
570 delete BHC; 552 delete BHC;
571 BHC = nullptr; 553 BHC = nullptr;
572 } 554 }
573 } 555 }
574 EXINDEX = 0; 556 EXINDEX = 0;
575 CUREXFLAG = 0; 557 CUREXFLAG = 0;
576 pTable.reset(new CJBig2_HuffmanTable( 558 pTable.reset(new CJBig2_HuffmanTable(HuffmanTable_B1, HuffmanTable_B1_Size,
577 HuffmanTable_B1, FX_ArraySize(HuffmanTable_B1), HuffmanTable_HTOOB_B1)); 559 HuffmanTable_HTOOB_B1));
578 EXFLAGS = FX_Alloc(FX_BOOL, SDNUMINSYMS + SDNUMNEWSYMS); 560 EXFLAGS = FX_Alloc(FX_BOOL, SDNUMINSYMS + SDNUMNEWSYMS);
579 while (EXINDEX < SDNUMINSYMS + SDNUMNEWSYMS) { 561 while (EXINDEX < SDNUMINSYMS + SDNUMNEWSYMS) {
580 if (pHuffmanDecoder->decodeAValue(pTable.get(), (int*)&EXRUNLENGTH) != 0) { 562 if (pHuffmanDecoder->decodeAValue(pTable.get(), (int*)&EXRUNLENGTH) != 0) {
581 FX_Free(EXFLAGS); 563 FX_Free(EXFLAGS);
582 goto failed; 564 goto failed;
583 } 565 }
584 if (EXINDEX + EXRUNLENGTH > SDNUMINSYMS + SDNUMNEWSYMS) { 566 if (EXINDEX + EXRUNLENGTH > SDNUMINSYMS + SDNUMNEWSYMS) {
585 FX_Free(EXFLAGS); 567 FX_Free(EXFLAGS);
586 goto failed; 568 goto failed;
587 } 569 }
(...skipping 27 matching lines...) Expand all
615 failed: 597 failed:
616 for (I = 0; I < NSYMSDECODED; I++) { 598 for (I = 0; I < NSYMSDECODED; I++) {
617 delete SDNEWSYMS[I]; 599 delete SDNEWSYMS[I];
618 } 600 }
619 FX_Free(SDNEWSYMS); 601 FX_Free(SDNEWSYMS);
620 if (SDREFAGG == 0) { 602 if (SDREFAGG == 0) {
621 FX_Free(SDNEWSYMWIDTHS); 603 FX_Free(SDNEWSYMWIDTHS);
622 } 604 }
623 return nullptr; 605 return nullptr;
624 } 606 }
OLDNEW
« no previous file with comments | « core/fxcodec/jbig2/JBig2_HuffmanTable_Standard.cpp ('k') | core/include/fxcrt/fx_arb.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698