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

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

Issue 1356373003: Fix a bunch of sign mismatch warnings. (Closed) Base URL: https://pdfium.googlesource.com/pdfium@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_HuffmanTable.h" 7 #include "JBig2_HuffmanTable.h"
8 8
9 #include <string.h> 9 #include <string.h>
10 10
(...skipping 14 matching lines...) Expand all
25 25
26 CJBig2_HuffmanTable::~CJBig2_HuffmanTable() { 26 CJBig2_HuffmanTable::~CJBig2_HuffmanTable() {
27 FX_Free(CODES); 27 FX_Free(CODES);
28 FX_Free(PREFLEN); 28 FX_Free(PREFLEN);
29 FX_Free(RANGELEN); 29 FX_Free(RANGELEN);
30 FX_Free(RANGELOW); 30 FX_Free(RANGELOW);
31 } 31 }
32 void CJBig2_HuffmanTable::init() { 32 void CJBig2_HuffmanTable::init() {
33 HTOOB = FALSE; 33 HTOOB = FALSE;
34 NTEMP = 0; 34 NTEMP = 0;
35 CODES = NULL; 35 CODES = nullptr;
36 PREFLEN = NULL; 36 PREFLEN = nullptr;
37 RANGELEN = NULL; 37 RANGELEN = nullptr;
38 RANGELOW = NULL; 38 RANGELOW = nullptr;
39 } 39 }
40 int CJBig2_HuffmanTable::parseFromStandardTable(const JBig2TableLine* pTable, 40 int CJBig2_HuffmanTable::parseFromStandardTable(const JBig2TableLine* pTable,
41 int nLines, 41 int nLines,
42 FX_BOOL bHTOOB) { 42 FX_BOOL bHTOOB) {
43 int CURLEN, LENMAX, CURCODE, CURTEMP, i;
44 int* LENCOUNT;
45 int* FIRSTCODE;
46 HTOOB = bHTOOB; 43 HTOOB = bHTOOB;
47 NTEMP = nLines; 44 NTEMP = nLines;
48 CODES = FX_Alloc(int, NTEMP); 45 CODES = FX_Alloc(int, NTEMP);
49 PREFLEN = FX_Alloc(int, NTEMP); 46 PREFLEN = FX_Alloc(int, NTEMP);
50 RANGELEN = FX_Alloc(int, NTEMP); 47 RANGELEN = FX_Alloc(int, NTEMP);
51 RANGELOW = FX_Alloc(int, NTEMP); 48 RANGELOW = FX_Alloc(int, NTEMP);
52 LENMAX = 0; 49 int LENMAX = 0;
53 for (i = 0; i < NTEMP; i++) { 50 for (FX_DWORD i = 0; i < NTEMP; ++i) {
54 PREFLEN[i] = pTable[i].PREFLEN; 51 PREFLEN[i] = pTable[i].PREFLEN;
55 RANGELEN[i] = pTable[i].RANDELEN; 52 RANGELEN[i] = pTable[i].RANDELEN;
56 RANGELOW[i] = pTable[i].RANGELOW; 53 RANGELOW[i] = pTable[i].RANGELOW;
57 if (PREFLEN[i] > LENMAX) { 54 if (PREFLEN[i] > LENMAX) {
58 LENMAX = PREFLEN[i]; 55 LENMAX = PREFLEN[i];
59 } 56 }
60 } 57 }
61 LENCOUNT = FX_Alloc(int, LENMAX + 1); 58 int* LENCOUNT = FX_Alloc(int, LENMAX + 1);
62 JBIG2_memset(LENCOUNT, 0, sizeof(int) * (LENMAX + 1)); 59 JBIG2_memset(LENCOUNT, 0, sizeof(int) * (LENMAX + 1));
63 FIRSTCODE = FX_Alloc(int, LENMAX + 1); 60 int* FIRSTCODE = FX_Alloc(int, LENMAX + 1);
64 for (i = 0; i < NTEMP; i++) { 61 for (FX_DWORD i = 0; i < NTEMP; ++i)
65 LENCOUNT[PREFLEN[i]]++; 62 ++LENCOUNT[PREFLEN[i]];
66 } 63
67 CURLEN = 1; 64 int CURLEN = 1;
68 FIRSTCODE[0] = 0; 65 FIRSTCODE[0] = 0;
69 LENCOUNT[0] = 0; 66 LENCOUNT[0] = 0;
70 while (CURLEN <= LENMAX) { 67 while (CURLEN <= LENMAX) {
71 FIRSTCODE[CURLEN] = (FIRSTCODE[CURLEN - 1] + LENCOUNT[CURLEN - 1]) << 1; 68 FIRSTCODE[CURLEN] = (FIRSTCODE[CURLEN - 1] + LENCOUNT[CURLEN - 1]) << 1;
72 CURCODE = FIRSTCODE[CURLEN]; 69 int CURCODE = FIRSTCODE[CURLEN];
73 CURTEMP = 0; 70 FX_DWORD CURTEMP = 0;
74 while (CURTEMP < NTEMP) { 71 while (CURTEMP < NTEMP) {
75 if (PREFLEN[CURTEMP] == CURLEN) { 72 if (PREFLEN[CURTEMP] == CURLEN) {
76 CODES[CURTEMP] = CURCODE; 73 CODES[CURTEMP] = CURCODE;
77 CURCODE = CURCODE + 1; 74 CURCODE = CURCODE + 1;
78 } 75 }
79 CURTEMP = CURTEMP + 1; 76 CURTEMP = CURTEMP + 1;
80 } 77 }
81 CURLEN = CURLEN + 1; 78 CURLEN = CURLEN + 1;
82 } 79 }
83 FX_Free(LENCOUNT); 80 FX_Free(LENCOUNT);
84 FX_Free(FIRSTCODE); 81 FX_Free(FIRSTCODE);
85 return 1; 82 return 1;
86 } 83 }
87 84
88 #define HT_CHECK_MEMORY_ADJUST \ 85 #define HT_CHECK_MEMORY_ADJUST \
89 if (NTEMP >= nSize) { \ 86 if (NTEMP >= nSize) { \
90 nSize += 16; \ 87 nSize += 16; \
91 PREFLEN = FX_Realloc(int, PREFLEN, nSize); \ 88 PREFLEN = FX_Realloc(int, PREFLEN, nSize); \
92 RANGELEN = FX_Realloc(int, RANGELEN, nSize); \ 89 RANGELEN = FX_Realloc(int, RANGELEN, nSize); \
93 RANGELOW = FX_Realloc(int, RANGELOW, nSize); \ 90 RANGELOW = FX_Realloc(int, RANGELOW, nSize); \
94 } 91 }
95 int CJBig2_HuffmanTable::parseFromCodedBuffer(CJBig2_BitStream* pStream) { 92 int CJBig2_HuffmanTable::parseFromCodedBuffer(CJBig2_BitStream* pStream) {
96 unsigned char HTPS, HTRS;
97 FX_DWORD HTLOW, HTHIGH;
98 FX_DWORD CURRANGELOW;
99 FX_DWORD nSize = 16;
100 int CURLEN, LENMAX, CURCODE, CURTEMP;
101 int* LENCOUNT;
102 int* FIRSTCODE;
103 unsigned char cTemp; 93 unsigned char cTemp;
104 if (pStream->read1Byte(&cTemp) == -1) { 94 if (pStream->read1Byte(&cTemp) == -1)
105 goto failed; 95 return FALSE;
106 } 96
107 HTOOB = cTemp & 0x01; 97 HTOOB = cTemp & 0x01;
108 HTPS = ((cTemp >> 1) & 0x07) + 1; 98 unsigned char HTPS = ((cTemp >> 1) & 0x07) + 1;
109 HTRS = ((cTemp >> 4) & 0x07) + 1; 99 unsigned char HTRS = ((cTemp >> 4) & 0x07) + 1;
100 FX_DWORD HTLOW;
101 FX_DWORD HTHIGH;
110 if (pStream->readInteger(&HTLOW) == -1 || 102 if (pStream->readInteger(&HTLOW) == -1 ||
111 pStream->readInteger(&HTHIGH) == -1 || HTLOW > HTHIGH) { 103 pStream->readInteger(&HTHIGH) == -1 || HTLOW > HTHIGH) {
112 goto failed; 104 return FALSE;
113 } 105 }
106
107 FX_DWORD nSize = 16;
114 PREFLEN = FX_Alloc(int, nSize); 108 PREFLEN = FX_Alloc(int, nSize);
115 RANGELEN = FX_Alloc(int, nSize); 109 RANGELEN = FX_Alloc(int, nSize);
116 RANGELOW = FX_Alloc(int, nSize); 110 RANGELOW = FX_Alloc(int, nSize);
117 CURRANGELOW = HTLOW; 111 FX_DWORD CURRANGELOW = HTLOW;
118 NTEMP = 0; 112 NTEMP = 0;
119 do { 113 do {
120 HT_CHECK_MEMORY_ADJUST 114 HT_CHECK_MEMORY_ADJUST
121 if ((pStream->readNBits(HTPS, &PREFLEN[NTEMP]) == -1) || 115 if ((pStream->readNBits(HTPS, &PREFLEN[NTEMP]) == -1) ||
122 (pStream->readNBits(HTRS, &RANGELEN[NTEMP]) == -1)) { 116 (pStream->readNBits(HTRS, &RANGELEN[NTEMP]) == -1)) {
123 goto failed; 117 return FALSE;
124 } 118 }
125 RANGELOW[NTEMP] = CURRANGELOW; 119 RANGELOW[NTEMP] = CURRANGELOW;
126 CURRANGELOW = CURRANGELOW + (1 << RANGELEN[NTEMP]); 120 CURRANGELOW = CURRANGELOW + (1 << RANGELEN[NTEMP]);
127 NTEMP = NTEMP + 1; 121 NTEMP = NTEMP + 1;
128 } while (CURRANGELOW < HTHIGH); 122 } while (CURRANGELOW < HTHIGH);
129 HT_CHECK_MEMORY_ADJUST 123 HT_CHECK_MEMORY_ADJUST
130 if (pStream->readNBits(HTPS, &PREFLEN[NTEMP]) == -1) { 124 if (pStream->readNBits(HTPS, &PREFLEN[NTEMP]) == -1)
131 goto failed; 125 return FALSE;
132 } 126
133 RANGELEN[NTEMP] = 32; 127 RANGELEN[NTEMP] = 32;
134 RANGELOW[NTEMP] = HTLOW - 1; 128 RANGELOW[NTEMP] = HTLOW - 1;
135 NTEMP = NTEMP + 1; 129 ++NTEMP;
136 HT_CHECK_MEMORY_ADJUST 130 HT_CHECK_MEMORY_ADJUST
137 if (pStream->readNBits(HTPS, &PREFLEN[NTEMP]) == -1) { 131 if (pStream->readNBits(HTPS, &PREFLEN[NTEMP]) == -1)
138 goto failed; 132 return FALSE;
139 } 133
140 RANGELEN[NTEMP] = 32; 134 RANGELEN[NTEMP] = 32;
141 RANGELOW[NTEMP] = HTHIGH; 135 RANGELOW[NTEMP] = HTHIGH;
142 NTEMP = NTEMP + 1; 136 NTEMP = NTEMP + 1;
143 if (HTOOB) { 137 if (HTOOB) {
144 HT_CHECK_MEMORY_ADJUST 138 HT_CHECK_MEMORY_ADJUST
145 if (pStream->readNBits(HTPS, &PREFLEN[NTEMP]) == -1) { 139 if (pStream->readNBits(HTPS, &PREFLEN[NTEMP]) == -1)
146 goto failed; 140 return FALSE;
147 } 141
148 NTEMP = NTEMP + 1; 142 ++NTEMP;
149 } 143 }
150 CODES = FX_Alloc(int, NTEMP); 144 CODES = FX_Alloc(int, NTEMP);
151 LENMAX = 0; 145 int LENMAX = 0;
152 for (int i = 0; i < NTEMP; i++) { 146 for (FX_DWORD i = 0; i < NTEMP; ++i) {
153 if (PREFLEN[i] > LENMAX) { 147 if (PREFLEN[i] > LENMAX) {
154 LENMAX = PREFLEN[i]; 148 LENMAX = PREFLEN[i];
155 } 149 }
156 } 150 }
157 LENCOUNT = FX_Alloc(int, (LENMAX + 1)); 151 int* LENCOUNT = FX_Alloc(int, (LENMAX + 1));
158 JBIG2_memset(LENCOUNT, 0, sizeof(int) * (LENMAX + 1)); 152 JBIG2_memset(LENCOUNT, 0, sizeof(int) * (LENMAX + 1));
159 FIRSTCODE = FX_Alloc(int, (LENMAX + 1)); 153 int* FIRSTCODE = FX_Alloc(int, (LENMAX + 1));
160 for (int i = 0; i < NTEMP; i++) { 154 for (FX_DWORD i = 0; i < NTEMP; ++i)
161 LENCOUNT[PREFLEN[i]]++; 155 LENCOUNT[PREFLEN[i]]++;
162 } 156
163 CURLEN = 1; 157 int CURLEN = 1;
164 FIRSTCODE[0] = 0; 158 FIRSTCODE[0] = 0;
165 LENCOUNT[0] = 0; 159 LENCOUNT[0] = 0;
166 while (CURLEN <= LENMAX) { 160 while (CURLEN <= LENMAX) {
167 FIRSTCODE[CURLEN] = (FIRSTCODE[CURLEN - 1] + LENCOUNT[CURLEN - 1]) << 1; 161 FIRSTCODE[CURLEN] = (FIRSTCODE[CURLEN - 1] + LENCOUNT[CURLEN - 1]) << 1;
168 CURCODE = FIRSTCODE[CURLEN]; 162 int CURCODE = FIRSTCODE[CURLEN];
169 CURTEMP = 0; 163 FX_DWORD CURTEMP = 0;
170 while (CURTEMP < NTEMP) { 164 while (CURTEMP < NTEMP) {
171 if (PREFLEN[CURTEMP] == CURLEN) { 165 if (PREFLEN[CURTEMP] == CURLEN) {
172 CODES[CURTEMP] = CURCODE; 166 CODES[CURTEMP] = CURCODE;
173 CURCODE = CURCODE + 1; 167 CURCODE = CURCODE + 1;
174 } 168 }
175 CURTEMP = CURTEMP + 1; 169 CURTEMP = CURTEMP + 1;
176 } 170 }
177 CURLEN = CURLEN + 1; 171 CURLEN = CURLEN + 1;
178 } 172 }
179 FX_Free(LENCOUNT); 173 FX_Free(LENCOUNT);
180 FX_Free(FIRSTCODE); 174 FX_Free(FIRSTCODE);
181 return TRUE; 175 return TRUE;
182 failed:
183 return FALSE;
184 } 176 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698