OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 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_Context.h" | 7 #include "core/fxcodec/jbig2/JBig2_Context.h" |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <list> | 10 #include <list> |
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
506 std::unique_ptr<CJBig2_HuffmanTable> Table_B2; | 506 std::unique_ptr<CJBig2_HuffmanTable> Table_B2; |
507 std::unique_ptr<CJBig2_HuffmanTable> Table_B3; | 507 std::unique_ptr<CJBig2_HuffmanTable> Table_B3; |
508 std::unique_ptr<CJBig2_HuffmanTable> Table_B4; | 508 std::unique_ptr<CJBig2_HuffmanTable> Table_B4; |
509 std::unique_ptr<CJBig2_HuffmanTable> Table_B5; | 509 std::unique_ptr<CJBig2_HuffmanTable> Table_B5; |
510 if (pSymbolDictDecoder->SDHUFF == 1) { | 510 if (pSymbolDictDecoder->SDHUFF == 1) { |
511 if (cSDHUFFDH == 2 || cSDHUFFDW == 2) | 511 if (cSDHUFFDH == 2 || cSDHUFFDW == 2) |
512 return JBIG2_ERROR_FATAL; | 512 return JBIG2_ERROR_FATAL; |
513 | 513 |
514 int32_t nIndex = 0; | 514 int32_t nIndex = 0; |
515 if (cSDHUFFDH == 0) { | 515 if (cSDHUFFDH == 0) { |
516 Table_B4.reset(new CJBig2_HuffmanTable(HuffmanTable_B4, | 516 Table_B4.reset(new CJBig2_HuffmanTable( |
517 FX_ArraySize(HuffmanTable_B4), | 517 HuffmanTable_B4, HuffmanTable_B4_Size, HuffmanTable_HTOOB_B4)); |
518 HuffmanTable_HTOOB_B4)); | |
519 pSymbolDictDecoder->SDHUFFDH = Table_B4.get(); | 518 pSymbolDictDecoder->SDHUFFDH = Table_B4.get(); |
520 } else if (cSDHUFFDH == 1) { | 519 } else if (cSDHUFFDH == 1) { |
521 Table_B5.reset(new CJBig2_HuffmanTable(HuffmanTable_B5, | 520 Table_B5.reset(new CJBig2_HuffmanTable( |
522 FX_ArraySize(HuffmanTable_B5), | 521 HuffmanTable_B5, HuffmanTable_B5_Size, HuffmanTable_HTOOB_B5)); |
523 HuffmanTable_HTOOB_B5)); | |
524 pSymbolDictDecoder->SDHUFFDH = Table_B5.get(); | 522 pSymbolDictDecoder->SDHUFFDH = Table_B5.get(); |
525 } else { | 523 } else { |
526 CJBig2_Segment* pSeg = | 524 CJBig2_Segment* pSeg = |
527 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); | 525 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); |
528 if (!pSeg) | 526 if (!pSeg) |
529 return JBIG2_ERROR_FATAL; | 527 return JBIG2_ERROR_FATAL; |
530 pSymbolDictDecoder->SDHUFFDH = pSeg->m_Result.ht; | 528 pSymbolDictDecoder->SDHUFFDH = pSeg->m_Result.ht; |
531 } | 529 } |
532 if (cSDHUFFDW == 0) { | 530 if (cSDHUFFDW == 0) { |
533 Table_B2.reset(new CJBig2_HuffmanTable(HuffmanTable_B2, | 531 Table_B2.reset(new CJBig2_HuffmanTable( |
534 FX_ArraySize(HuffmanTable_B2), | 532 HuffmanTable_B2, HuffmanTable_B2_Size, HuffmanTable_HTOOB_B2)); |
535 HuffmanTable_HTOOB_B2)); | |
536 pSymbolDictDecoder->SDHUFFDW = Table_B2.get(); | 533 pSymbolDictDecoder->SDHUFFDW = Table_B2.get(); |
537 } else if (cSDHUFFDW == 1) { | 534 } else if (cSDHUFFDW == 1) { |
538 Table_B3.reset(new CJBig2_HuffmanTable(HuffmanTable_B3, | 535 Table_B3.reset(new CJBig2_HuffmanTable( |
539 FX_ArraySize(HuffmanTable_B3), | 536 HuffmanTable_B3, HuffmanTable_B3_Size, HuffmanTable_HTOOB_B3)); |
540 HuffmanTable_HTOOB_B3)); | |
541 pSymbolDictDecoder->SDHUFFDW = Table_B3.get(); | 537 pSymbolDictDecoder->SDHUFFDW = Table_B3.get(); |
542 } else { | 538 } else { |
543 CJBig2_Segment* pSeg = | 539 CJBig2_Segment* pSeg = |
544 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); | 540 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); |
545 if (!pSeg) | 541 if (!pSeg) |
546 return JBIG2_ERROR_FATAL; | 542 return JBIG2_ERROR_FATAL; |
547 pSymbolDictDecoder->SDHUFFDW = pSeg->m_Result.ht; | 543 pSymbolDictDecoder->SDHUFFDW = pSeg->m_Result.ht; |
548 } | 544 } |
549 if (cSDHUFFBMSIZE == 0) { | 545 if (cSDHUFFBMSIZE == 0) { |
550 Table_B1.reset(new CJBig2_HuffmanTable(HuffmanTable_B1, | 546 Table_B1.reset(new CJBig2_HuffmanTable( |
551 FX_ArraySize(HuffmanTable_B1), | 547 HuffmanTable_B1, HuffmanTable_B1_Size, HuffmanTable_HTOOB_B1)); |
552 HuffmanTable_HTOOB_B1)); | |
553 pSymbolDictDecoder->SDHUFFBMSIZE = Table_B1.get(); | 548 pSymbolDictDecoder->SDHUFFBMSIZE = Table_B1.get(); |
554 } else { | 549 } else { |
555 CJBig2_Segment* pSeg = | 550 CJBig2_Segment* pSeg = |
556 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); | 551 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); |
557 if (!pSeg) | 552 if (!pSeg) |
558 return JBIG2_ERROR_FATAL; | 553 return JBIG2_ERROR_FATAL; |
559 pSymbolDictDecoder->SDHUFFBMSIZE = pSeg->m_Result.ht; | 554 pSymbolDictDecoder->SDHUFFBMSIZE = pSeg->m_Result.ht; |
560 } | 555 } |
561 if (pSymbolDictDecoder->SDREFAGG == 1) { | 556 if (pSymbolDictDecoder->SDREFAGG == 1) { |
562 if (cSDHUFFAGGINST == 0) { | 557 if (cSDHUFFAGGINST == 0) { |
563 if (!Table_B1) { | 558 if (!Table_B1) { |
564 Table_B1.reset(new CJBig2_HuffmanTable(HuffmanTable_B1, | 559 Table_B1.reset(new CJBig2_HuffmanTable( |
565 FX_ArraySize(HuffmanTable_B1), | 560 HuffmanTable_B1, HuffmanTable_B1_Size, HuffmanTable_HTOOB_B1)); |
566 HuffmanTable_HTOOB_B1)); | |
567 } | 561 } |
568 pSymbolDictDecoder->SDHUFFAGGINST = Table_B1.get(); | 562 pSymbolDictDecoder->SDHUFFAGGINST = Table_B1.get(); |
569 } else { | 563 } else { |
570 CJBig2_Segment* pSeg = | 564 CJBig2_Segment* pSeg = |
571 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); | 565 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); |
572 if (!pSeg) | 566 if (!pSeg) |
573 return JBIG2_ERROR_FATAL; | 567 return JBIG2_ERROR_FATAL; |
574 pSymbolDictDecoder->SDHUFFAGGINST = pSeg->m_Result.ht; | 568 pSymbolDictDecoder->SDHUFFAGGINST = pSeg->m_Result.ht; |
575 } | 569 } |
576 } | 570 } |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
774 std::unique_ptr<CJBig2_HuffmanTable> Table_B13; | 768 std::unique_ptr<CJBig2_HuffmanTable> Table_B13; |
775 std::unique_ptr<CJBig2_HuffmanTable> Table_B14; | 769 std::unique_ptr<CJBig2_HuffmanTable> Table_B14; |
776 std::unique_ptr<CJBig2_HuffmanTable> Table_B15; | 770 std::unique_ptr<CJBig2_HuffmanTable> Table_B15; |
777 if (pTRD->SBHUFF == 1) { | 771 if (pTRD->SBHUFF == 1) { |
778 if (cSBHUFFFS == 2 || cSBHUFFRDW == 2 || cSBHUFFRDH == 2 || | 772 if (cSBHUFFFS == 2 || cSBHUFFRDW == 2 || cSBHUFFRDH == 2 || |
779 cSBHUFFRDX == 2 || cSBHUFFRDY == 2) { | 773 cSBHUFFRDX == 2 || cSBHUFFRDY == 2) { |
780 return JBIG2_ERROR_FATAL; | 774 return JBIG2_ERROR_FATAL; |
781 } | 775 } |
782 int32_t nIndex = 0; | 776 int32_t nIndex = 0; |
783 if (cSBHUFFFS == 0) { | 777 if (cSBHUFFFS == 0) { |
784 Table_B6.reset(new CJBig2_HuffmanTable(HuffmanTable_B6, | 778 Table_B6.reset(new CJBig2_HuffmanTable( |
785 FX_ArraySize(HuffmanTable_B6), | 779 HuffmanTable_B6, HuffmanTable_B6_Size, HuffmanTable_HTOOB_B6)); |
786 HuffmanTable_HTOOB_B6)); | |
787 pTRD->SBHUFFFS = Table_B6.get(); | 780 pTRD->SBHUFFFS = Table_B6.get(); |
788 } else if (cSBHUFFFS == 1) { | 781 } else if (cSBHUFFFS == 1) { |
789 Table_B7.reset(new CJBig2_HuffmanTable(HuffmanTable_B7, | 782 Table_B7.reset(new CJBig2_HuffmanTable( |
790 FX_ArraySize(HuffmanTable_B7), | 783 HuffmanTable_B7, HuffmanTable_B7_Size, HuffmanTable_HTOOB_B7)); |
791 HuffmanTable_HTOOB_B7)); | |
792 pTRD->SBHUFFFS = Table_B7.get(); | 784 pTRD->SBHUFFFS = Table_B7.get(); |
793 } else { | 785 } else { |
794 CJBig2_Segment* pSeg = | 786 CJBig2_Segment* pSeg = |
795 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); | 787 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); |
796 if (!pSeg) | 788 if (!pSeg) |
797 return JBIG2_ERROR_FATAL; | 789 return JBIG2_ERROR_FATAL; |
798 pTRD->SBHUFFFS = pSeg->m_Result.ht; | 790 pTRD->SBHUFFFS = pSeg->m_Result.ht; |
799 } | 791 } |
800 if (cSBHUFFDS == 0) { | 792 if (cSBHUFFDS == 0) { |
801 Table_B8.reset(new CJBig2_HuffmanTable(HuffmanTable_B8, | 793 Table_B8.reset(new CJBig2_HuffmanTable( |
802 FX_ArraySize(HuffmanTable_B8), | 794 HuffmanTable_B8, HuffmanTable_B8_Size, HuffmanTable_HTOOB_B8)); |
803 HuffmanTable_HTOOB_B8)); | |
804 pTRD->SBHUFFDS = Table_B8.get(); | 795 pTRD->SBHUFFDS = Table_B8.get(); |
805 } else if (cSBHUFFDS == 1) { | 796 } else if (cSBHUFFDS == 1) { |
806 Table_B9.reset(new CJBig2_HuffmanTable(HuffmanTable_B9, | 797 Table_B9.reset(new CJBig2_HuffmanTable( |
807 FX_ArraySize(HuffmanTable_B9), | 798 HuffmanTable_B9, HuffmanTable_B9_Size, HuffmanTable_HTOOB_B9)); |
808 HuffmanTable_HTOOB_B9)); | |
809 pTRD->SBHUFFDS = Table_B9.get(); | 799 pTRD->SBHUFFDS = Table_B9.get(); |
810 } else if (cSBHUFFDS == 2) { | 800 } else if (cSBHUFFDS == 2) { |
811 Table_B10.reset(new CJBig2_HuffmanTable(HuffmanTable_B10, | 801 Table_B10.reset(new CJBig2_HuffmanTable( |
812 FX_ArraySize(HuffmanTable_B10), | 802 HuffmanTable_B10, HuffmanTable_B10_Size, HuffmanTable_HTOOB_B10)); |
813 HuffmanTable_HTOOB_B10)); | |
814 pTRD->SBHUFFDS = Table_B10.get(); | 803 pTRD->SBHUFFDS = Table_B10.get(); |
815 } else { | 804 } else { |
816 CJBig2_Segment* pSeg = | 805 CJBig2_Segment* pSeg = |
817 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); | 806 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); |
818 if (!pSeg) | 807 if (!pSeg) |
819 return JBIG2_ERROR_FATAL; | 808 return JBIG2_ERROR_FATAL; |
820 pTRD->SBHUFFDS = pSeg->m_Result.ht; | 809 pTRD->SBHUFFDS = pSeg->m_Result.ht; |
821 } | 810 } |
822 if (cSBHUFFDT == 0) { | 811 if (cSBHUFFDT == 0) { |
823 Table_B11.reset(new CJBig2_HuffmanTable(HuffmanTable_B11, | 812 Table_B11.reset(new CJBig2_HuffmanTable( |
824 FX_ArraySize(HuffmanTable_B11), | 813 HuffmanTable_B11, HuffmanTable_B11_Size, HuffmanTable_HTOOB_B11)); |
825 HuffmanTable_HTOOB_B11)); | |
826 pTRD->SBHUFFDT = Table_B11.get(); | 814 pTRD->SBHUFFDT = Table_B11.get(); |
827 } else if (cSBHUFFDT == 1) { | 815 } else if (cSBHUFFDT == 1) { |
828 Table_B12.reset(new CJBig2_HuffmanTable(HuffmanTable_B12, | 816 Table_B12.reset(new CJBig2_HuffmanTable( |
829 FX_ArraySize(HuffmanTable_B12), | 817 HuffmanTable_B12, HuffmanTable_B12_Size, HuffmanTable_HTOOB_B12)); |
830 HuffmanTable_HTOOB_B12)); | |
831 pTRD->SBHUFFDT = Table_B12.get(); | 818 pTRD->SBHUFFDT = Table_B12.get(); |
832 } else if (cSBHUFFDT == 2) { | 819 } else if (cSBHUFFDT == 2) { |
833 Table_B13.reset(new CJBig2_HuffmanTable(HuffmanTable_B13, | 820 Table_B13.reset(new CJBig2_HuffmanTable( |
834 FX_ArraySize(HuffmanTable_B13), | 821 HuffmanTable_B13, HuffmanTable_B13_Size, HuffmanTable_HTOOB_B13)); |
835 HuffmanTable_HTOOB_B13)); | |
836 pTRD->SBHUFFDT = Table_B13.get(); | 822 pTRD->SBHUFFDT = Table_B13.get(); |
837 } else { | 823 } else { |
838 CJBig2_Segment* pSeg = | 824 CJBig2_Segment* pSeg = |
839 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); | 825 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); |
840 if (!pSeg) | 826 if (!pSeg) |
841 return JBIG2_ERROR_FATAL; | 827 return JBIG2_ERROR_FATAL; |
842 pTRD->SBHUFFDT = pSeg->m_Result.ht; | 828 pTRD->SBHUFFDT = pSeg->m_Result.ht; |
843 } | 829 } |
844 if (cSBHUFFRDW == 0) { | 830 if (cSBHUFFRDW == 0) { |
845 Table_B14.reset(new CJBig2_HuffmanTable(HuffmanTable_B14, | 831 Table_B14.reset(new CJBig2_HuffmanTable( |
846 FX_ArraySize(HuffmanTable_B14), | 832 HuffmanTable_B14, HuffmanTable_B14_Size, HuffmanTable_HTOOB_B14)); |
847 HuffmanTable_HTOOB_B14)); | |
848 pTRD->SBHUFFRDW = Table_B14.get(); | 833 pTRD->SBHUFFRDW = Table_B14.get(); |
849 } else if (cSBHUFFRDW == 1) { | 834 } else if (cSBHUFFRDW == 1) { |
850 Table_B15.reset(new CJBig2_HuffmanTable(HuffmanTable_B15, | 835 Table_B15.reset(new CJBig2_HuffmanTable( |
851 FX_ArraySize(HuffmanTable_B15), | 836 HuffmanTable_B15, HuffmanTable_B15_Size, HuffmanTable_HTOOB_B15)); |
852 HuffmanTable_HTOOB_B15)); | |
853 pTRD->SBHUFFRDW = Table_B15.get(); | 837 pTRD->SBHUFFRDW = Table_B15.get(); |
854 } else { | 838 } else { |
855 CJBig2_Segment* pSeg = | 839 CJBig2_Segment* pSeg = |
856 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); | 840 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); |
857 if (!pSeg) | 841 if (!pSeg) |
858 return JBIG2_ERROR_FATAL; | 842 return JBIG2_ERROR_FATAL; |
859 pTRD->SBHUFFRDW = pSeg->m_Result.ht; | 843 pTRD->SBHUFFRDW = pSeg->m_Result.ht; |
860 } | 844 } |
861 if (cSBHUFFRDH == 0) { | 845 if (cSBHUFFRDH == 0) { |
862 if (!Table_B14) { | 846 if (!Table_B14) { |
863 Table_B14.reset(new CJBig2_HuffmanTable(HuffmanTable_B14, | 847 Table_B14.reset(new CJBig2_HuffmanTable( |
864 FX_ArraySize(HuffmanTable_B14), | 848 HuffmanTable_B14, HuffmanTable_B14_Size, HuffmanTable_HTOOB_B14)); |
865 HuffmanTable_HTOOB_B14)); | |
866 } | 849 } |
867 pTRD->SBHUFFRDH = Table_B14.get(); | 850 pTRD->SBHUFFRDH = Table_B14.get(); |
868 } else if (cSBHUFFRDH == 1) { | 851 } else if (cSBHUFFRDH == 1) { |
869 if (!Table_B15) { | 852 if (!Table_B15) { |
870 Table_B15.reset(new CJBig2_HuffmanTable(HuffmanTable_B15, | 853 Table_B15.reset(new CJBig2_HuffmanTable( |
871 FX_ArraySize(HuffmanTable_B15), | 854 HuffmanTable_B15, HuffmanTable_B15_Size, HuffmanTable_HTOOB_B15)); |
872 HuffmanTable_HTOOB_B15)); | |
873 } | 855 } |
874 pTRD->SBHUFFRDH = Table_B15.get(); | 856 pTRD->SBHUFFRDH = Table_B15.get(); |
875 } else { | 857 } else { |
876 CJBig2_Segment* pSeg = | 858 CJBig2_Segment* pSeg = |
877 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); | 859 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); |
878 if (!pSeg) | 860 if (!pSeg) |
879 return JBIG2_ERROR_FATAL; | 861 return JBIG2_ERROR_FATAL; |
880 pTRD->SBHUFFRDH = pSeg->m_Result.ht; | 862 pTRD->SBHUFFRDH = pSeg->m_Result.ht; |
881 } | 863 } |
882 if (cSBHUFFRDX == 0) { | 864 if (cSBHUFFRDX == 0) { |
883 if (!Table_B14) { | 865 if (!Table_B14) { |
884 Table_B14.reset(new CJBig2_HuffmanTable(HuffmanTable_B14, | 866 Table_B14.reset(new CJBig2_HuffmanTable( |
885 FX_ArraySize(HuffmanTable_B14), | 867 HuffmanTable_B14, HuffmanTable_B14_Size, HuffmanTable_HTOOB_B14)); |
886 HuffmanTable_HTOOB_B14)); | |
887 } | 868 } |
888 pTRD->SBHUFFRDX = Table_B14.get(); | 869 pTRD->SBHUFFRDX = Table_B14.get(); |
889 } else if (cSBHUFFRDX == 1) { | 870 } else if (cSBHUFFRDX == 1) { |
890 if (!Table_B15) { | 871 if (!Table_B15) { |
891 Table_B15.reset(new CJBig2_HuffmanTable(HuffmanTable_B15, | 872 Table_B15.reset(new CJBig2_HuffmanTable( |
892 FX_ArraySize(HuffmanTable_B15), | 873 HuffmanTable_B15, HuffmanTable_B15_Size, HuffmanTable_HTOOB_B15)); |
893 HuffmanTable_HTOOB_B15)); | |
894 } | 874 } |
895 pTRD->SBHUFFRDX = Table_B15.get(); | 875 pTRD->SBHUFFRDX = Table_B15.get(); |
896 } else { | 876 } else { |
897 CJBig2_Segment* pSeg = | 877 CJBig2_Segment* pSeg = |
898 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); | 878 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); |
899 if (!pSeg) | 879 if (!pSeg) |
900 return JBIG2_ERROR_FATAL; | 880 return JBIG2_ERROR_FATAL; |
901 pTRD->SBHUFFRDX = pSeg->m_Result.ht; | 881 pTRD->SBHUFFRDX = pSeg->m_Result.ht; |
902 } | 882 } |
903 if (cSBHUFFRDY == 0) { | 883 if (cSBHUFFRDY == 0) { |
904 if (!Table_B14) { | 884 if (!Table_B14) { |
905 Table_B14.reset(new CJBig2_HuffmanTable(HuffmanTable_B14, | 885 Table_B14.reset(new CJBig2_HuffmanTable( |
906 FX_ArraySize(HuffmanTable_B14), | 886 HuffmanTable_B14, HuffmanTable_B14_Size, HuffmanTable_HTOOB_B14)); |
907 HuffmanTable_HTOOB_B14)); | |
908 } | 887 } |
909 pTRD->SBHUFFRDY = Table_B14.get(); | 888 pTRD->SBHUFFRDY = Table_B14.get(); |
910 } else if (cSBHUFFRDY == 1) { | 889 } else if (cSBHUFFRDY == 1) { |
911 if (!Table_B15) { | 890 if (!Table_B15) { |
912 Table_B15.reset(new CJBig2_HuffmanTable(HuffmanTable_B15, | 891 Table_B15.reset(new CJBig2_HuffmanTable( |
913 FX_ArraySize(HuffmanTable_B15), | 892 HuffmanTable_B15, HuffmanTable_B15_Size, HuffmanTable_HTOOB_B15)); |
914 HuffmanTable_HTOOB_B15)); | |
915 } | 893 } |
916 pTRD->SBHUFFRDY = Table_B15.get(); | 894 pTRD->SBHUFFRDY = Table_B15.get(); |
917 } else { | 895 } else { |
918 CJBig2_Segment* pSeg = | 896 CJBig2_Segment* pSeg = |
919 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); | 897 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); |
920 if (!pSeg) | 898 if (!pSeg) |
921 return JBIG2_ERROR_FATAL; | 899 return JBIG2_ERROR_FATAL; |
922 pTRD->SBHUFFRDY = pSeg->m_Result.ht; | 900 pTRD->SBHUFFRDY = pSeg->m_Result.ht; |
923 } | 901 } |
924 if (cSBHUFFRSIZE == 0) { | 902 if (cSBHUFFRSIZE == 0) { |
925 Table_B1.reset(new CJBig2_HuffmanTable(HuffmanTable_B1, | 903 Table_B1.reset(new CJBig2_HuffmanTable( |
926 FX_ArraySize(HuffmanTable_B1), | 904 HuffmanTable_B1, HuffmanTable_B1_Size, HuffmanTable_HTOOB_B1)); |
927 HuffmanTable_HTOOB_B1)); | |
928 pTRD->SBHUFFRSIZE = Table_B1.get(); | 905 pTRD->SBHUFFRSIZE = Table_B1.get(); |
929 } else { | 906 } else { |
930 CJBig2_Segment* pSeg = | 907 CJBig2_Segment* pSeg = |
931 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); | 908 findReferredSegmentByTypeAndIndex(pSegment, 53, nIndex++); |
932 if (!pSeg) | 909 if (!pSeg) |
933 return JBIG2_ERROR_FATAL; | 910 return JBIG2_ERROR_FATAL; |
934 pTRD->SBHUFFRSIZE = pSeg->m_Result.ht; | 911 pTRD->SBHUFFRSIZE = pSeg->m_Result.ht; |
935 } | 912 } |
936 } | 913 } |
937 std::unique_ptr<JBig2ArithCtx, FxFreeDeleter> grContext; | 914 std::unique_ptr<JBig2ArithCtx, FxFreeDeleter> grContext; |
(...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1431 SBSYMCODES[CURTEMP].code = CURCODE; | 1408 SBSYMCODES[CURTEMP].code = CURCODE; |
1432 CURCODE = CURCODE + 1; | 1409 CURCODE = CURCODE + 1; |
1433 } | 1410 } |
1434 CURTEMP = CURTEMP + 1; | 1411 CURTEMP = CURTEMP + 1; |
1435 } | 1412 } |
1436 CURLEN = CURLEN + 1; | 1413 CURLEN = CURLEN + 1; |
1437 } | 1414 } |
1438 FX_Free(LENCOUNT); | 1415 FX_Free(LENCOUNT); |
1439 FX_Free(FIRSTCODE); | 1416 FX_Free(FIRSTCODE); |
1440 } | 1417 } |
OLD | NEW |