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

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

Issue 1359233002: Split up JBig2_GeneralDecoder.cpp. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: 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 unified diff | Download patch
OLDNEW
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 "JBig2_ArithIntDecoder.h" 7 #include "JBig2_ArithIntDecoder.h"
8 8
9 #include "../../../include/fxcrt/fx_memory.h" 9 #include "../../../include/fxcrt/fx_memory.h"
10 #include "JBig2_Define.h"
10 11
11 CJBig2_ArithIntDecoder::CJBig2_ArithIntDecoder() { 12 CJBig2_ArithIntDecoder::CJBig2_ArithIntDecoder() {
12 IAx = FX_Alloc(JBig2ArithCtx, 512); 13 IAx = (JBig2ArithCtx*)FX_AllocOrDie(sizeof(JBig2ArithCtx), 512);
13 JBIG2_memset(IAx, 0, sizeof(JBig2ArithCtx) * 512); 14 JBIG2_memset(IAx, 0, sizeof(JBig2ArithCtx) * 512);
14 } 15 }
15 CJBig2_ArithIntDecoder::~CJBig2_ArithIntDecoder() { 16 CJBig2_ArithIntDecoder::~CJBig2_ArithIntDecoder() {
16 FX_Free(IAx); 17 FX_Free(IAx);
17 } 18 }
18 int CJBig2_ArithIntDecoder::decode(CJBig2_ArithDecoder* pArithDecoder, 19 int CJBig2_ArithIntDecoder::decode(CJBig2_ArithDecoder* pArithDecoder,
19 int* nResult) { 20 int* nResult) {
20 int PREV, V; 21 int PREV, V;
21 int S, D; 22 int S, D;
22 int nNeedBits, nTemp, i; 23 int nNeedBits, nTemp, i;
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 V = -V; 76 V = -V;
76 } 77 }
77 *nResult = V; 78 *nResult = V;
78 if (S == 1 && V == 0) { 79 if (S == 1 && V == 0) {
79 return JBIG2_OOB; 80 return JBIG2_OOB;
80 } 81 }
81 return 0; 82 return 0;
82 } 83 }
83 CJBig2_ArithIaidDecoder::CJBig2_ArithIaidDecoder(unsigned char SBSYMCODELENA) { 84 CJBig2_ArithIaidDecoder::CJBig2_ArithIaidDecoder(unsigned char SBSYMCODELENA) {
84 SBSYMCODELEN = SBSYMCODELENA; 85 SBSYMCODELEN = SBSYMCODELENA;
85 IAID = FX_Alloc(JBig2ArithCtx, 1 << SBSYMCODELEN); 86 IAID =
87 (JBig2ArithCtx*)FX_AllocOrDie(sizeof(JBig2ArithCtx), (1 << SBSYMCODELEN));
86 JBIG2_memset(IAID, 0, sizeof(JBig2ArithCtx) * (int)(1 << SBSYMCODELEN)); 88 JBIG2_memset(IAID, 0, sizeof(JBig2ArithCtx) * (int)(1 << SBSYMCODELEN));
87 } 89 }
88 CJBig2_ArithIaidDecoder::~CJBig2_ArithIaidDecoder() { 90 CJBig2_ArithIaidDecoder::~CJBig2_ArithIaidDecoder() {
89 FX_Free(IAID); 91 FX_Free(IAID);
90 } 92 }
91 int CJBig2_ArithIaidDecoder::decode(CJBig2_ArithDecoder* pArithDecoder, 93 int CJBig2_ArithIaidDecoder::decode(CJBig2_ArithDecoder* pArithDecoder,
92 int* nResult) { 94 int* nResult) {
93 int PREV; 95 int PREV;
94 int D; 96 int D;
95 int i; 97 int i;
96 PREV = 1; 98 PREV = 1;
97 for (i = 0; i < SBSYMCODELEN; i++) { 99 for (i = 0; i < SBSYMCODELEN; i++) {
98 D = pArithDecoder->DECODE(IAID + PREV); 100 D = pArithDecoder->DECODE(IAID + PREV);
99 PREV = (PREV << 1) | D; 101 PREV = (PREV << 1) | D;
100 } 102 }
101 PREV = PREV - (1 << SBSYMCODELEN); 103 PREV = PREV - (1 << SBSYMCODELEN);
102 *nResult = PREV; 104 *nResult = PREV;
103 return 0; 105 return 0;
104 } 106 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698