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

Side by Side Diff: core/src/fxcodec/lgif/fx_gif.cpp

Issue 1172793002: Merge to XFA: Use stdint.h types throughout PDFium. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Created 5 years, 6 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/src/fxcodec/lgif/fx_gif.h ('k') | core/src/fxcrt/extension.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 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 "fx_gif.h" 7 #include "fx_gif.h"
8 void CGifLZWDecoder::Input(FX_LPBYTE src_buf, FX_DWORD src_size) 8 void CGifLZWDecoder::Input(FX_LPBYTE src_buf, FX_DWORD src_size)
9 { 9 {
10 next_in = src_buf; 10 next_in = src_buf;
11 avail_in = src_size; 11 avail_in = src_size;
12 } 12 }
13 FX_DWORD CGifLZWDecoder::GetAvailInput() 13 FX_DWORD CGifLZWDecoder::GetAvailInput()
14 { 14 {
15 return avail_in; 15 return avail_in;
16 } 16 }
17 void CGifLZWDecoder::InitTable(FX_BYTE code_len) 17 void CGifLZWDecoder::InitTable(uint8_t code_len)
18 { 18 {
19 code_size = code_len; 19 code_size = code_len;
20 code_clear = 1 << code_size; 20 code_clear = 1 << code_size;
21 code_end = code_clear + 1; 21 code_end = code_clear + 1;
22 bits_left = 0; 22 bits_left = 0;
23 code_store = 0; 23 code_store = 0;
24 next_in = NULL; 24 next_in = NULL;
25 avail_in = 0; 25 avail_in = 0;
26 stack_size = 0; 26 stack_size = 0;
27 code_first = 0; 27 code_first = 0;
28 ClearTable(); 28 ClearTable();
29 } 29 }
30 void CGifLZWDecoder::ClearTable() 30 void CGifLZWDecoder::ClearTable()
31 { 31 {
32 code_size_cur = code_size + 1; 32 code_size_cur = code_size + 1;
33 code_next = code_end + 1; 33 code_next = code_end + 1;
34 code_old = (FX_WORD) - 1; 34 code_old = (FX_WORD) - 1;
35 FXSYS_memset32(code_table, 0, sizeof(tag_Table)*GIF_MAX_LZW_CODE); 35 FXSYS_memset32(code_table, 0, sizeof(tag_Table)*GIF_MAX_LZW_CODE);
36 FXSYS_memset32(stack, 0, GIF_MAX_LZW_CODE); 36 FXSYS_memset32(stack, 0, GIF_MAX_LZW_CODE);
37 for (FX_WORD i = 0; i < code_clear; i++) { 37 for (FX_WORD i = 0; i < code_clear; i++) {
38 code_table[i].suffix = (FX_BYTE)i; 38 code_table[i].suffix = (uint8_t)i;
39 } 39 }
40 } 40 }
41 void CGifLZWDecoder::DecodeString(FX_WORD code) 41 void CGifLZWDecoder::DecodeString(FX_WORD code)
42 { 42 {
43 stack_size = 0; 43 stack_size = 0;
44 while (TRUE) { 44 while (TRUE) {
45 ASSERT(code <= code_next); 45 ASSERT(code <= code_next);
46 if(code < code_clear || code > code_next) { 46 if(code < code_clear || code > code_next) {
47 break; 47 break;
48 } 48 }
49 stack[GIF_MAX_LZW_CODE - 1 - stack_size++] = code_table[code].suffix; 49 stack[GIF_MAX_LZW_CODE - 1 - stack_size++] = code_table[code].suffix;
50 code = code_table[code].prefix; 50 code = code_table[code].prefix;
51 } 51 }
52 stack[GIF_MAX_LZW_CODE - 1 - stack_size++] = (FX_BYTE)code; 52 stack[GIF_MAX_LZW_CODE - 1 - stack_size++] = (uint8_t)code;
53 code_first = (FX_BYTE)code; 53 code_first = (uint8_t)code;
54 } 54 }
55 void CGifLZWDecoder::AddCode(FX_WORD prefix_code, FX_BYTE append_char) 55 void CGifLZWDecoder::AddCode(FX_WORD prefix_code, uint8_t append_char)
56 { 56 {
57 if(code_next == GIF_MAX_LZW_CODE) { 57 if(code_next == GIF_MAX_LZW_CODE) {
58 return; 58 return;
59 } 59 }
60 code_table[code_next].prefix = prefix_code; 60 code_table[code_next].prefix = prefix_code;
61 code_table[code_next].suffix = append_char; 61 code_table[code_next].suffix = append_char;
62 if(++code_next < GIF_MAX_LZW_CODE) { 62 if(++code_next < GIF_MAX_LZW_CODE) {
63 if(code_next >> code_size_cur) { 63 if(code_next >> code_size_cur) {
64 code_size_cur++; 64 code_size_cur++;
65 } 65 }
66 } 66 }
67 } 67 }
68 FX_INT32 CGifLZWDecoder::Decode(FX_LPBYTE des_buf, FX_DWORD& des_size) 68 int32_t CGifLZWDecoder::Decode(FX_LPBYTE des_buf, FX_DWORD& des_size)
69 { 69 {
70 if(des_size == 0) { 70 if(des_size == 0) {
71 return 3; 71 return 3;
72 } 72 }
73 FX_DWORD i = 0; 73 FX_DWORD i = 0;
74 if(stack_size != 0) { 74 if(stack_size != 0) {
75 if(des_size < stack_size) { 75 if(des_size < stack_size) {
76 FXSYS_memcpy32(des_buf, &stack[GIF_MAX_LZW_CODE - stack_size], des_s ize); 76 FXSYS_memcpy32(des_buf, &stack[GIF_MAX_LZW_CODE - stack_size], des_s ize);
77 stack_size -= (FX_WORD)des_size; 77 stack_size -= (FX_WORD)des_size;
78 return 3; 78 return 3;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 if(code == code_next) { 111 if(code == code_next) {
112 AddCode(code_old, code_first); 112 AddCode(code_old, code_first);
113 DecodeString(code); 113 DecodeString(code);
114 } else if(code > code_next) { 114 } else if(code > code_next) {
115 if(err_msg_ptr) { 115 if(err_msg_ptr) {
116 FXSYS_strncpy(err_msg_ptr, "Decode Error, Out Of Range", GIF_MAX_ERROR_SIZE - 1); 116 FXSYS_strncpy(err_msg_ptr, "Decode Error, Out Of Range", GIF_MAX_ERROR_SIZE - 1);
117 } 117 }
118 return 0; 118 return 0;
119 } else { 119 } else {
120 DecodeString(code); 120 DecodeString(code);
121 FX_BYTE append_char = stack[GIF_MAX_LZW_CODE - stack _size]; 121 uint8_t append_char = stack[GIF_MAX_LZW_CODE - stack _size];
122 AddCode(code_old, append_char); 122 AddCode(code_old, append_char);
123 } 123 }
124 } 124 }
125 } else { 125 } else {
126 DecodeString(code); 126 DecodeString(code);
127 } 127 }
128 code_old = code; 128 code_old = code;
129 if(i + stack_size > des_size) { 129 if(i + stack_size > des_size) {
130 FXSYS_memcpy32(des_buf, &stack[GIF_MAX_LZW_CODE - stack_size ], des_size - i); 130 FXSYS_memcpy32(des_buf, &stack[GIF_MAX_LZW_CODE - stack_size ], des_size - i);
131 stack_size -= (FX_WORD)(des_size - i); 131 stack_size -= (FX_WORD)(des_size - i);
(...skipping 11 matching lines...) Expand all
143 return 2; 143 return 2;
144 } 144 }
145 return 0; 145 return 0;
146 } 146 }
147 static FX_BOOL _gif_grow_buf(FX_LPBYTE& dst_buf, FX_DWORD& dst_len, FX_DWORD siz e) 147 static FX_BOOL _gif_grow_buf(FX_LPBYTE& dst_buf, FX_DWORD& dst_len, FX_DWORD siz e)
148 { 148 {
149 if (dst_len < size) { 149 if (dst_len < size) {
150 FX_DWORD len_org = dst_len; 150 FX_DWORD len_org = dst_len;
151 while (dst_buf && dst_len < size) { 151 while (dst_buf && dst_len < size) {
152 dst_len <<= 1; 152 dst_len <<= 1;
153 dst_buf = FX_Realloc(FX_BYTE, dst_buf, dst_len); 153 dst_buf = FX_Realloc(uint8_t, dst_buf, dst_len);
154 } 154 }
155 if (dst_buf == NULL) { 155 if (dst_buf == NULL) {
156 dst_len = size; 156 dst_len = size;
157 dst_buf = FX_Realloc(FX_BYTE, dst_buf, dst_len); 157 dst_buf = FX_Realloc(uint8_t, dst_buf, dst_len);
158 if (dst_buf == NULL) { 158 if (dst_buf == NULL) {
159 return FALSE; 159 return FALSE;
160 } 160 }
161 } 161 }
162 FXSYS_memset32(dst_buf + len_org, 0, dst_len - len_org); 162 FXSYS_memset32(dst_buf + len_org, 0, dst_len - len_org);
163 return dst_buf != NULL; 163 return dst_buf != NULL;
164 } 164 }
165 return TRUE; 165 return TRUE;
166 } 166 }
167 static inline void _gif_cut_index(FX_BYTE& val, FX_DWORD index, FX_BYTE index_bi t, FX_BYTE index_bit_use, FX_BYTE bit_use) 167 static inline void _gif_cut_index(uint8_t& val, FX_DWORD index, uint8_t index_bi t, uint8_t index_bit_use, uint8_t bit_use)
168 { 168 {
169 FX_DWORD cut = ((1 << (index_bit - index_bit_use)) - 1) << index_bit_use; 169 FX_DWORD cut = ((1 << (index_bit - index_bit_use)) - 1) << index_bit_use;
170 val |= ((index & cut) >> index_bit_use) << bit_use; 170 val |= ((index & cut) >> index_bit_use) << bit_use;
171 } 171 }
172 static inline FX_BYTE _gif_cut_buf(FX_LPCBYTE buf, FX_DWORD& offset, FX_BYTE bit _cut, FX_BYTE& bit_offset, FX_DWORD& bit_num) 172 static inline uint8_t _gif_cut_buf(FX_LPCBYTE buf, FX_DWORD& offset, uint8_t bit _cut, uint8_t& bit_offset, FX_DWORD& bit_num)
173 { 173 {
174 if (bit_cut != 8) { 174 if (bit_cut != 8) {
175 FX_WORD index = 0; 175 FX_WORD index = 0;
176 index |= ((1 << bit_cut) - 1) << (7 - bit_offset); 176 index |= ((1 << bit_cut) - 1) << (7 - bit_offset);
177 FX_BYTE ret = ((index & buf[offset]) >> (7 - bit_offset)); 177 uint8_t ret = ((index & buf[offset]) >> (7 - bit_offset));
178 bit_offset += bit_cut; 178 bit_offset += bit_cut;
179 if (bit_offset >= 8) { 179 if (bit_offset >= 8) {
180 if (bit_offset > 8) { 180 if (bit_offset > 8) {
181 ret |= ((index & (buf[offset + 1] << 8)) >> 8); 181 ret |= ((index & (buf[offset + 1] << 8)) >> 8);
182 } 182 }
183 bit_offset -= 8; 183 bit_offset -= 8;
184 offset ++; 184 offset ++;
185 } 185 }
186 bit_num += bit_cut; 186 bit_num += bit_cut;
187 return ret; 187 return ret;
(...skipping 11 matching lines...) Expand all
199 void CGifLZWEncoder::ClearTable() 199 void CGifLZWEncoder::ClearTable()
200 { 200 {
201 index_bit_cur = code_size + 1; 201 index_bit_cur = code_size + 1;
202 index_num = code_end + 1; 202 index_num = code_end + 1;
203 table_cur = code_end + 1; 203 table_cur = code_end + 1;
204 for (FX_WORD i = 0; i < GIF_MAX_LZW_CODE; i++) { 204 for (FX_WORD i = 0; i < GIF_MAX_LZW_CODE; i++) {
205 code_table[i].prefix = 0; 205 code_table[i].prefix = 0;
206 code_table[i].suffix = 0; 206 code_table[i].suffix = 0;
207 } 207 }
208 } 208 }
209 void CGifLZWEncoder::Start( FX_BYTE code_len, FX_LPCBYTE src_buf, FX_LPBYTE& dst _buf, FX_DWORD& offset) 209 void CGifLZWEncoder::Start( uint8_t code_len, FX_LPCBYTE src_buf, FX_LPBYTE& dst _buf, FX_DWORD& offset)
210 { 210 {
211 code_size = code_len + 1; 211 code_size = code_len + 1;
212 src_bit_cut = code_size; 212 src_bit_cut = code_size;
213 if (code_len == 0) { 213 if (code_len == 0) {
214 src_bit_cut = 1; 214 src_bit_cut = 1;
215 code_size = 2; 215 code_size = 2;
216 } 216 }
217 code_clear = 1 << code_size; 217 code_clear = 1 << code_size;
218 code_end = code_clear + 1; 218 code_end = code_clear + 1;
219 dst_buf[offset++] = code_size; 219 dst_buf[offset++] = code_size;
(...skipping 11 matching lines...) Expand all
231 longjmp(jmp, 1); 231 longjmp(jmp, 1);
232 } 232 }
233 dst_buf[offset++] = index_buf_len; 233 dst_buf[offset++] = index_buf_len;
234 FXSYS_memcpy32(&dst_buf[offset], index_buf, index_buf_len); 234 FXSYS_memcpy32(&dst_buf[offset], index_buf, index_buf_len);
235 offset += index_buf_len; 235 offset += index_buf_len;
236 FXSYS_memset32(index_buf, 0, GIF_DATA_BLOCK); 236 FXSYS_memset32(index_buf, 0, GIF_DATA_BLOCK);
237 index_buf_len = 0; 237 index_buf_len = 0;
238 } 238 }
239 void CGifLZWEncoder::EncodeString( FX_DWORD index, FX_LPBYTE& dst_buf, FX_DWORD& dst_len, FX_DWORD& offset ) 239 void CGifLZWEncoder::EncodeString( FX_DWORD index, FX_LPBYTE& dst_buf, FX_DWORD& dst_len, FX_DWORD& offset )
240 { 240 {
241 FX_BYTE index_bit_use; 241 uint8_t index_bit_use;
242 index_bit_use = 0; 242 index_bit_use = 0;
243 if (index_buf_len == GIF_DATA_BLOCK) { 243 if (index_buf_len == GIF_DATA_BLOCK) {
244 WriteBlock(dst_buf, dst_len, offset); 244 WriteBlock(dst_buf, dst_len, offset);
245 } 245 }
246 _gif_cut_index(index_buf[index_buf_len], index, index_bit_cur, index_bit_use , bit_offset); 246 _gif_cut_index(index_buf[index_buf_len], index, index_bit_cur, index_bit_use , bit_offset);
247 if (index_bit_cur <= (8 - bit_offset)) { 247 if (index_bit_cur <= (8 - bit_offset)) {
248 bit_offset += index_bit_cur; 248 bit_offset += index_bit_cur;
249 } else if (index_bit_cur <= (16 - bit_offset)) { 249 } else if (index_bit_cur <= (16 - bit_offset)) {
250 index_bit_use += (8 - bit_offset); 250 index_bit_use += (8 - bit_offset);
251 bit_offset = 0; 251 bit_offset = 0;
(...skipping 30 matching lines...) Expand all
282 if (index == code_end) { 282 if (index == code_end) {
283 index_buf_len++; 283 index_buf_len++;
284 WriteBlock(dst_buf, dst_len, offset); 284 WriteBlock(dst_buf, dst_len, offset);
285 } 285 }
286 if (index_num++ >> index_bit_cur) { 286 if (index_num++ >> index_bit_cur) {
287 index_bit_cur++; 287 index_bit_cur++;
288 } 288 }
289 } 289 }
290 FX_BOOL CGifLZWEncoder::Encode( FX_LPCBYTE src_buf, FX_DWORD src_len, FX_LPBYTE& dst_buf, FX_DWORD& dst_len, FX_DWORD& offset ) 290 FX_BOOL CGifLZWEncoder::Encode( FX_LPCBYTE src_buf, FX_DWORD src_len, FX_LPBYTE& dst_buf, FX_DWORD& dst_len, FX_DWORD& offset )
291 { 291 {
292 FX_BYTE» » suffix; 292 uint8_t» » suffix;
293 if (setjmp(jmp)) { 293 if (setjmp(jmp)) {
294 return FALSE; 294 return FALSE;
295 } 295 }
296 while(src_bit_num < src_len) { 296 while(src_bit_num < src_len) {
297 if (!LookUpInTable(src_buf, src_offset, src_bit_offset)) { 297 if (!LookUpInTable(src_buf, src_offset, src_bit_offset)) {
298 EncodeString(code_table[index_num].prefix, dst_buf, dst_len, offset) ; 298 EncodeString(code_table[index_num].prefix, dst_buf, dst_len, offset) ;
299 if (index_num == GIF_MAX_LZW_CODE) { 299 if (index_num == GIF_MAX_LZW_CODE) {
300 suffix = code_table[index_num - 1].suffix; 300 suffix = code_table[index_num - 1].suffix;
301 EncodeString(code_clear, dst_buf, dst_len, offset); 301 EncodeString(code_clear, dst_buf, dst_len, offset);
302 ClearTable(); 302 ClearTable();
303 code_table[index_num].prefix = suffix; 303 code_table[index_num].prefix = suffix;
304 code_table[index_num].suffix = _gif_cut_buf(src_buf, src_offset, src_bit_cut, src_bit_offset, src_bit_num); 304 code_table[index_num].suffix = _gif_cut_buf(src_buf, src_offset, src_bit_cut, src_bit_offset, src_bit_num);
305 } else { 305 } else {
306 code_table[index_num].prefix = code_table[index_num - 1].suffix; 306 code_table[index_num].prefix = code_table[index_num - 1].suffix;
307 code_table[index_num].suffix = _gif_cut_buf(src_buf, src_offset, src_bit_cut, src_bit_offset, src_bit_num); 307 code_table[index_num].suffix = _gif_cut_buf(src_buf, src_offset, src_bit_cut, src_bit_offset, src_bit_num);
308 } 308 }
309 } 309 }
310 } 310 }
311 src_offset = 0; 311 src_offset = 0;
312 src_bit_offset = 0; 312 src_bit_offset = 0;
313 src_bit_num = 0; 313 src_bit_num = 0;
314 return TRUE; 314 return TRUE;
315 } 315 }
316 FX_BOOL CGifLZWEncoder::LookUpInTable( FX_LPCBYTE buf, FX_DWORD& offset, FX_BYTE & bit_offset ) 316 FX_BOOL CGifLZWEncoder::LookUpInTable( FX_LPCBYTE buf, FX_DWORD& offset, uint8_t & bit_offset )
317 { 317 {
318 for (FX_WORD i = table_cur; i < index_num; i++) { 318 for (FX_WORD i = table_cur; i < index_num; i++) {
319 if (code_table[i].prefix == code_table[index_num].prefix && 319 if (code_table[i].prefix == code_table[index_num].prefix &&
320 code_table[i].suffix == code_table[index_num].suffix) { 320 code_table[i].suffix == code_table[index_num].suffix) {
321 code_table[index_num].prefix = i; 321 code_table[index_num].prefix = i;
322 code_table[index_num].suffix = _gif_cut_buf(buf, offset, src_bit_cut , bit_offset, src_bit_num); 322 code_table[index_num].suffix = _gif_cut_buf(buf, offset, src_bit_cut , bit_offset, src_bit_num);
323 table_cur = i; 323 table_cur = i;
324 return TRUE; 324 return TRUE;
325 } 325 }
326 } 326 }
327 table_cur = code_end + 1; 327 table_cur = code_end + 1;
328 return FALSE; 328 return FALSE;
329 } 329 }
330 void CGifLZWEncoder::Finish(FX_LPBYTE& dst_buf, FX_DWORD& dst_len, FX_DWORD& off set) 330 void CGifLZWEncoder::Finish(FX_LPBYTE& dst_buf, FX_DWORD& dst_len, FX_DWORD& off set)
331 { 331 {
332 EncodeString(code_table[index_num].prefix, dst_buf, dst_len, offset); 332 EncodeString(code_table[index_num].prefix, dst_buf, dst_len, offset);
333 EncodeString(code_end, dst_buf, dst_len, offset); 333 EncodeString(code_end, dst_buf, dst_len, offset);
334 bit_offset = 0; 334 bit_offset = 0;
335 ClearTable(); 335 ClearTable();
336 } 336 }
337 gif_decompress_struct_p _gif_create_decompress() 337 gif_decompress_struct_p _gif_create_decompress()
338 { 338 {
339 gif_decompress_struct_p gif_ptr = (gif_decompress_struct*)FX_Alloc(FX_BYTE, sizeof(gif_decompress_struct)); 339 gif_decompress_struct_p gif_ptr = (gif_decompress_struct*)FX_Alloc(uint8_t, sizeof(gif_decompress_struct));
340 if(gif_ptr == NULL) { 340 if(gif_ptr == NULL) {
341 return NULL; 341 return NULL;
342 } 342 }
343 FXSYS_memset32(gif_ptr, 0, sizeof(gif_decompress_struct)); 343 FXSYS_memset32(gif_ptr, 0, sizeof(gif_decompress_struct));
344 gif_ptr->decode_status = GIF_D_STATUS_SIG; 344 gif_ptr->decode_status = GIF_D_STATUS_SIG;
345 gif_ptr->img_ptr_arr_ptr = new CFX_ArrayTemplate<GifImage*>; 345 gif_ptr->img_ptr_arr_ptr = new CFX_ArrayTemplate<GifImage*>;
346 #ifdef GIF_SUPPORT_COMMENT_EXTENSION 346 #ifdef GIF_SUPPORT_COMMENT_EXTENSION
347 gif_ptr->cmt_data_ptr = new CFX_ByteString; 347 gif_ptr->cmt_data_ptr = new CFX_ByteString;
348 #endif 348 #endif
349 #ifdef GIF_SUPPORT_PLAIN_TEXT_EXTENSION 349 #ifdef GIF_SUPPORT_PLAIN_TEXT_EXTENSION
350 gif_ptr->pt_ptr_arr_ptr = new CFX_ArrayTemplate<GifPlainText*>; 350 gif_ptr->pt_ptr_arr_ptr = new CFX_ArrayTemplate<GifPlainText*>;
351 #endif 351 #endif
352 return gif_ptr; 352 return gif_ptr;
353 } 353 }
354 void _gif_destroy_decompress(gif_decompress_struct_pp gif_ptr_ptr) 354 void _gif_destroy_decompress(gif_decompress_struct_pp gif_ptr_ptr)
355 { 355 {
356 if(gif_ptr_ptr == NULL || *gif_ptr_ptr == NULL) { 356 if(gif_ptr_ptr == NULL || *gif_ptr_ptr == NULL) {
357 return; 357 return;
358 } 358 }
359 gif_decompress_struct_p gif_ptr = *gif_ptr_ptr; 359 gif_decompress_struct_p gif_ptr = *gif_ptr_ptr;
360 *gif_ptr_ptr = NULL; 360 *gif_ptr_ptr = NULL;
361 if(gif_ptr->global_pal_ptr != NULL) { 361 if(gif_ptr->global_pal_ptr != NULL) {
362 FX_Free(gif_ptr->global_pal_ptr); 362 FX_Free(gif_ptr->global_pal_ptr);
363 } 363 }
364 if(gif_ptr->img_decoder_ptr != NULL) { 364 if(gif_ptr->img_decoder_ptr != NULL) {
365 delete gif_ptr->img_decoder_ptr; 365 delete gif_ptr->img_decoder_ptr;
366 } 366 }
367 if(gif_ptr->img_ptr_arr_ptr != NULL) { 367 if(gif_ptr->img_ptr_arr_ptr != NULL) {
368 FX_INT32 size_img_arr = gif_ptr->img_ptr_arr_ptr->GetSize(); 368 int32_t size_img_arr = gif_ptr->img_ptr_arr_ptr->GetSize();
369 for (FX_INT32 i = 0; i < size_img_arr; i++) { 369 for (int32_t i = 0; i < size_img_arr; i++) {
370 GifImage* p = gif_ptr->img_ptr_arr_ptr->GetAt(i); 370 GifImage* p = gif_ptr->img_ptr_arr_ptr->GetAt(i);
371 if(p->image_info_ptr != NULL) { 371 if(p->image_info_ptr != NULL) {
372 FX_Free(p->image_info_ptr); 372 FX_Free(p->image_info_ptr);
373 } 373 }
374 if(p->image_gce_ptr != NULL) { 374 if(p->image_gce_ptr != NULL) {
375 FX_Free(p->image_gce_ptr); 375 FX_Free(p->image_gce_ptr);
376 } 376 }
377 if(p->image_row_buf != NULL) { 377 if(p->image_row_buf != NULL) {
378 FX_Free(p->image_row_buf); 378 FX_Free(p->image_row_buf);
379 } 379 }
(...skipping 15 matching lines...) Expand all
395 delete gif_ptr->cmt_data_ptr; 395 delete gif_ptr->cmt_data_ptr;
396 } 396 }
397 #endif 397 #endif
398 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION 398 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION
399 if(gif_ptr->gce_ptr != NULL) { 399 if(gif_ptr->gce_ptr != NULL) {
400 FX_Free(gif_ptr->gce_ptr); 400 FX_Free(gif_ptr->gce_ptr);
401 } 401 }
402 #endif 402 #endif
403 #ifdef GIF_SUPPORT_PLAIN_TEXT_EXTENSION 403 #ifdef GIF_SUPPORT_PLAIN_TEXT_EXTENSION
404 if(gif_ptr->pt_ptr_arr_ptr != NULL) { 404 if(gif_ptr->pt_ptr_arr_ptr != NULL) {
405 FX_INT32 size_pt_arr = gif_ptr->pt_ptr_arr_ptr->GetSize(); 405 int32_t size_pt_arr = gif_ptr->pt_ptr_arr_ptr->GetSize();
406 for (FX_INT32 i = 0; i < size_pt_arr; i++) { 406 for (int32_t i = 0; i < size_pt_arr; i++) {
407 GifPlainText* p = gif_ptr->pt_ptr_arr_ptr->GetAt(i); 407 GifPlainText* p = gif_ptr->pt_ptr_arr_ptr->GetAt(i);
408 if(p->gce_ptr != NULL) { 408 if(p->gce_ptr != NULL) {
409 FX_Free(p->gce_ptr); 409 FX_Free(p->gce_ptr);
410 } 410 }
411 if(p->pte_ptr != NULL) { 411 if(p->pte_ptr != NULL) {
412 FX_Free(p->pte_ptr); 412 FX_Free(p->pte_ptr);
413 } 413 }
414 if(p->string_ptr != NULL) { 414 if(p->string_ptr != NULL) {
415 delete p->string_ptr; 415 delete p->string_ptr;
416 } 416 }
417 } 417 }
418 gif_ptr->pt_ptr_arr_ptr->RemoveAll(); 418 gif_ptr->pt_ptr_arr_ptr->RemoveAll();
419 delete gif_ptr->pt_ptr_arr_ptr; 419 delete gif_ptr->pt_ptr_arr_ptr;
420 } 420 }
421 #endif 421 #endif
422 FX_Free(gif_ptr); 422 FX_Free(gif_ptr);
423 } 423 }
424 gif_compress_struct_p _gif_create_compress() 424 gif_compress_struct_p _gif_create_compress()
425 { 425 {
426 gif_compress_struct_p gif_ptr = (gif_compress_struct*)FX_Alloc(FX_BYTE, size of(gif_compress_struct)); 426 gif_compress_struct_p gif_ptr = (gif_compress_struct*)FX_Alloc(uint8_t, size of(gif_compress_struct));
427 if (gif_ptr == NULL) { 427 if (gif_ptr == NULL) {
428 return NULL; 428 return NULL;
429 } 429 }
430 FXSYS_memset32(gif_ptr, 0, sizeof(gif_compress_struct)); 430 FXSYS_memset32(gif_ptr, 0, sizeof(gif_compress_struct));
431 gif_ptr->img_encoder_ptr = new CGifLZWEncoder; 431 gif_ptr->img_encoder_ptr = new CGifLZWEncoder;
432 gif_ptr->header_ptr = (GifHeader*)FX_Alloc(FX_BYTE, sizeof(GifHeader)); 432 gif_ptr->header_ptr = (GifHeader*)FX_Alloc(uint8_t, sizeof(GifHeader));
433 if (gif_ptr->header_ptr == NULL) { 433 if (gif_ptr->header_ptr == NULL) {
434 delete(gif_ptr->img_encoder_ptr); 434 delete(gif_ptr->img_encoder_ptr);
435 FX_Free(gif_ptr); 435 FX_Free(gif_ptr);
436 return NULL; 436 return NULL;
437 } 437 }
438 FXSYS_memcpy32(gif_ptr->header_ptr->signature, GIF_SIGNATURE, 3); 438 FXSYS_memcpy32(gif_ptr->header_ptr->signature, GIF_SIGNATURE, 3);
439 FXSYS_memcpy32(gif_ptr->header_ptr->version, "89a", 3); 439 FXSYS_memcpy32(gif_ptr->header_ptr->version, "89a", 3);
440 gif_ptr->lsd_ptr = (GifLSD*)FX_Alloc(FX_BYTE, sizeof(GifLSD)); 440 gif_ptr->lsd_ptr = (GifLSD*)FX_Alloc(uint8_t, sizeof(GifLSD));
441 if (gif_ptr->lsd_ptr == NULL) { 441 if (gif_ptr->lsd_ptr == NULL) {
442 FX_Free(gif_ptr->header_ptr); 442 FX_Free(gif_ptr->header_ptr);
443 delete(gif_ptr->img_encoder_ptr); 443 delete(gif_ptr->img_encoder_ptr);
444 FX_Free(gif_ptr); 444 FX_Free(gif_ptr);
445 return NULL; 445 return NULL;
446 } 446 }
447 FXSYS_memset32(gif_ptr->lsd_ptr, 0, sizeof(GifLSD)); 447 FXSYS_memset32(gif_ptr->lsd_ptr, 0, sizeof(GifLSD));
448 gif_ptr->image_info_ptr = (GifImageInfo*)FX_Alloc(FX_BYTE, sizeof(GifImageIn fo)); 448 gif_ptr->image_info_ptr = (GifImageInfo*)FX_Alloc(uint8_t, sizeof(GifImageIn fo));
449 if (gif_ptr->image_info_ptr == NULL) { 449 if (gif_ptr->image_info_ptr == NULL) {
450 FX_Free(gif_ptr->lsd_ptr); 450 FX_Free(gif_ptr->lsd_ptr);
451 FX_Free(gif_ptr->header_ptr); 451 FX_Free(gif_ptr->header_ptr);
452 delete(gif_ptr->img_encoder_ptr); 452 delete(gif_ptr->img_encoder_ptr);
453 FX_Free(gif_ptr); 453 FX_Free(gif_ptr);
454 return NULL; 454 return NULL;
455 } 455 }
456 FXSYS_memset32(gif_ptr->image_info_ptr, 0, sizeof(GifImageInfo)); 456 FXSYS_memset32(gif_ptr->image_info_ptr, 0, sizeof(GifImageInfo));
457 #ifdef GIF_SUPPORT_APPLICATION_EXTENSION 457 #ifdef GIF_SUPPORT_APPLICATION_EXTENSION
458 FXSYS_memcpy32(gif_ptr->app_identify, "netscape", 8); 458 FXSYS_memcpy32(gif_ptr->app_identify, "netscape", 8);
459 FXSYS_memcpy32(gif_ptr->app_authentication, "2.0", 3); 459 FXSYS_memcpy32(gif_ptr->app_authentication, "2.0", 3);
460 #endif 460 #endif
461 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION 461 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION
462 gif_ptr->gce_ptr = (GifGCE*)FX_Alloc(FX_BYTE, sizeof(GifGCE)); 462 gif_ptr->gce_ptr = (GifGCE*)FX_Alloc(uint8_t, sizeof(GifGCE));
463 if (gif_ptr->gce_ptr == NULL) { 463 if (gif_ptr->gce_ptr == NULL) {
464 FX_Free(gif_ptr->image_info_ptr); 464 FX_Free(gif_ptr->image_info_ptr);
465 FX_Free(gif_ptr->lsd_ptr); 465 FX_Free(gif_ptr->lsd_ptr);
466 FX_Free(gif_ptr->header_ptr); 466 FX_Free(gif_ptr->header_ptr);
467 delete(gif_ptr->img_encoder_ptr); 467 delete(gif_ptr->img_encoder_ptr);
468 FX_Free(gif_ptr); 468 FX_Free(gif_ptr);
469 return NULL; 469 return NULL;
470 } 470 }
471 #endif 471 #endif
472 #ifdef GIF_SUPPORT_PLAIN_TEXT_EXTENSION 472 #ifdef GIF_SUPPORT_PLAIN_TEXT_EXTENSION
473 gif_ptr->pte_ptr = (GifPTE*)FX_Alloc(FX_BYTE, sizeof(GifPTE)); 473 gif_ptr->pte_ptr = (GifPTE*)FX_Alloc(uint8_t, sizeof(GifPTE));
474 if (gif_ptr->pte_ptr == NULL) { 474 if (gif_ptr->pte_ptr == NULL) {
475 FX_Free(gif_ptr->gce_ptr); 475 FX_Free(gif_ptr->gce_ptr);
476 FX_Free(gif_ptr->image_info_ptr); 476 FX_Free(gif_ptr->image_info_ptr);
477 FX_Free(gif_ptr->lsd_ptr); 477 FX_Free(gif_ptr->lsd_ptr);
478 FX_Free(gif_ptr->header_ptr); 478 FX_Free(gif_ptr->header_ptr);
479 delete(gif_ptr->img_encoder_ptr); 479 delete(gif_ptr->img_encoder_ptr);
480 FX_Free(gif_ptr); 480 FX_Free(gif_ptr);
481 return NULL; 481 return NULL;
482 } 482 }
483 FXSYS_memset32(gif_ptr->pte_ptr, 0, sizeof(GifPTE)); 483 FXSYS_memset32(gif_ptr->pte_ptr, 0, sizeof(GifPTE));
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 #endif 532 #endif
533 FX_Free(gif_ptr); 533 FX_Free(gif_ptr);
534 } 534 }
535 void _gif_error(gif_decompress_struct_p gif_ptr, FX_LPCSTR err_msg) 535 void _gif_error(gif_decompress_struct_p gif_ptr, FX_LPCSTR err_msg)
536 { 536 {
537 if(gif_ptr != NULL && gif_ptr->_gif_error_fn != NULL) { 537 if(gif_ptr != NULL && gif_ptr->_gif_error_fn != NULL) {
538 gif_ptr->_gif_error_fn(gif_ptr, err_msg); 538 gif_ptr->_gif_error_fn(gif_ptr, err_msg);
539 } 539 }
540 } 540 }
541 void _gif_warn(gif_decompress_struct_p gif_ptr, FX_LPCSTR err_msg) {} 541 void _gif_warn(gif_decompress_struct_p gif_ptr, FX_LPCSTR err_msg) {}
542 FX_INT32 _gif_read_header(gif_decompress_struct_p gif_ptr) 542 int32_t _gif_read_header(gif_decompress_struct_p gif_ptr)
543 { 543 {
544 if(gif_ptr == NULL) { 544 if(gif_ptr == NULL) {
545 return 0; 545 return 0;
546 } 546 }
547 FX_DWORD skip_size_org = gif_ptr->skip_size; 547 FX_DWORD skip_size_org = gif_ptr->skip_size;
548 ASSERT(sizeof(GifHeader) == 6); 548 ASSERT(sizeof(GifHeader) == 6);
549 GifHeader* gif_header_ptr = NULL; 549 GifHeader* gif_header_ptr = NULL;
550 if(_gif_read_data(gif_ptr, (FX_LPBYTE*)&gif_header_ptr, 6) == NULL) { 550 if(_gif_read_data(gif_ptr, (FX_LPBYTE*)&gif_header_ptr, 6) == NULL) {
551 return 2; 551 return 2;
552 } 552 }
553 if(FXSYS_strncmp(gif_header_ptr->signature, GIF_SIGNATURE, 3) != 0 || 553 if(FXSYS_strncmp(gif_header_ptr->signature, GIF_SIGNATURE, 3) != 0 ||
554 gif_header_ptr->version[0] != '8' || 554 gif_header_ptr->version[0] != '8' ||
555 gif_header_ptr->version[2] != 'a') { 555 gif_header_ptr->version[2] != 'a') {
556 _gif_error(gif_ptr, "Not A Gif Image"); 556 _gif_error(gif_ptr, "Not A Gif Image");
557 return 0; 557 return 0;
558 } 558 }
559 ASSERT(sizeof(GifLSD) == 7); 559 ASSERT(sizeof(GifLSD) == 7);
560 GifLSD* gif_lsd_ptr = NULL; 560 GifLSD* gif_lsd_ptr = NULL;
561 if(_gif_read_data(gif_ptr, (FX_LPBYTE*)&gif_lsd_ptr, 7) == NULL) { 561 if(_gif_read_data(gif_ptr, (FX_LPBYTE*)&gif_lsd_ptr, 7) == NULL) {
562 gif_ptr->skip_size = skip_size_org; 562 gif_ptr->skip_size = skip_size_org;
563 return 2; 563 return 2;
564 } 564 }
565 if(((GifGF*)&gif_lsd_ptr->global_flag)->global_pal) { 565 if(((GifGF*)&gif_lsd_ptr->global_flag)->global_pal) {
566 gif_ptr->global_pal_num = 2 << ((GifGF*)&gif_lsd_ptr->global_flag)->pal_ bits; 566 gif_ptr->global_pal_num = 2 << ((GifGF*)&gif_lsd_ptr->global_flag)->pal_ bits;
567 ASSERT(sizeof(GifPalette) == 3); 567 ASSERT(sizeof(GifPalette) == 3);
568 FX_INT32 global_pal_size = gif_ptr->global_pal_num * 3; 568 int32_t global_pal_size = gif_ptr->global_pal_num * 3;
569 FX_LPBYTE global_pal_ptr = NULL; 569 FX_LPBYTE global_pal_ptr = NULL;
570 if (_gif_read_data(gif_ptr, &global_pal_ptr, global_pal_size) == NULL) { 570 if (_gif_read_data(gif_ptr, &global_pal_ptr, global_pal_size) == NULL) {
571 gif_ptr->skip_size = skip_size_org; 571 gif_ptr->skip_size = skip_size_org;
572 return 2; 572 return 2;
573 } 573 }
574 gif_ptr->global_sort_flag = ((GifGF*)&gif_lsd_ptr->global_flag)->sort_fl ag; 574 gif_ptr->global_sort_flag = ((GifGF*)&gif_lsd_ptr->global_flag)->sort_fl ag;
575 gif_ptr->global_color_resolution = ((GifGF*)&gif_lsd_ptr->global_flag)-> color_resolution; 575 gif_ptr->global_color_resolution = ((GifGF*)&gif_lsd_ptr->global_flag)-> color_resolution;
576 if(gif_ptr->global_pal_ptr != NULL) { 576 if(gif_ptr->global_pal_ptr != NULL) {
577 FX_Free(gif_ptr->global_pal_ptr); 577 FX_Free(gif_ptr->global_pal_ptr);
578 } 578 }
579 gif_ptr->global_pal_ptr = NULL; 579 gif_ptr->global_pal_ptr = NULL;
580 gif_ptr->global_pal_ptr = (GifPalette*)FX_Alloc(FX_BYTE, global_pal_size ); 580 gif_ptr->global_pal_ptr = (GifPalette*)FX_Alloc(uint8_t, global_pal_size );
581 GIF_PTR_NOT_NULL(gif_ptr->global_pal_ptr, gif_ptr); 581 GIF_PTR_NOT_NULL(gif_ptr->global_pal_ptr, gif_ptr);
582 FXSYS_memcpy32(gif_ptr->global_pal_ptr, global_pal_ptr, global_pal_size) ; 582 FXSYS_memcpy32(gif_ptr->global_pal_ptr, global_pal_ptr, global_pal_size) ;
583 } 583 }
584 gif_ptr->width = (int)_GetWord_LSBFirst((FX_LPBYTE)&gif_lsd_ptr->width); 584 gif_ptr->width = (int)_GetWord_LSBFirst((FX_LPBYTE)&gif_lsd_ptr->width);
585 gif_ptr->height = (int)_GetWord_LSBFirst((FX_LPBYTE)&gif_lsd_ptr->height); 585 gif_ptr->height = (int)_GetWord_LSBFirst((FX_LPBYTE)&gif_lsd_ptr->height);
586 gif_ptr->bc_index = gif_lsd_ptr->bc_index; 586 gif_ptr->bc_index = gif_lsd_ptr->bc_index;
587 gif_ptr->pixel_aspect = gif_lsd_ptr->pixel_aspect; 587 gif_ptr->pixel_aspect = gif_lsd_ptr->pixel_aspect;
588 return 1; 588 return 1;
589 } 589 }
590 FX_INT32 _gif_get_frame(gif_decompress_struct_p gif_ptr) 590 int32_t _gif_get_frame(gif_decompress_struct_p gif_ptr)
591 { 591 {
592 if(gif_ptr == NULL) { 592 if(gif_ptr == NULL) {
593 return 0; 593 return 0;
594 } 594 }
595 FX_INT32 ret = 1; 595 int32_t ret = 1;
596 while (TRUE) { 596 while (TRUE) {
597 switch(gif_ptr->decode_status) { 597 switch(gif_ptr->decode_status) {
598 case GIF_D_STATUS_TAIL: 598 case GIF_D_STATUS_TAIL:
599 return 1; 599 return 1;
600 case GIF_D_STATUS_SIG: { 600 case GIF_D_STATUS_SIG: {
601 FX_LPBYTE sig_ptr = NULL; 601 FX_LPBYTE sig_ptr = NULL;
602 if(_gif_read_data(gif_ptr, &sig_ptr, 1) == NULL) { 602 if(_gif_read_data(gif_ptr, &sig_ptr, 1) == NULL) {
603 return 2; 603 return 2;
604 } 604 }
605 switch(*sig_ptr) { 605 switch(*sig_ptr) {
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
642 case GIF_BLOCK_GCE: 642 case GIF_BLOCK_GCE:
643 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_EXT_ GCE); 643 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_EXT_ GCE);
644 continue; 644 continue;
645 #endif 645 #endif
646 #ifdef GIF_SUPPORT_PLAIN_TEXT_EXTENSION 646 #ifdef GIF_SUPPORT_PLAIN_TEXT_EXTENSION
647 case GIF_BLOCK_PTE: 647 case GIF_BLOCK_PTE:
648 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_EXT_ PTE); 648 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_EXT_ PTE);
649 continue; 649 continue;
650 #endif 650 #endif
651 default: { 651 default: {
652 FX_INT32 status = GIF_D_STATUS_EXT_UNE; 652 int32_t status = GIF_D_STATUS_EXT_UNE;
653 #ifndef GIF_SUPPORT_PLAIN_TEXT_EXTENSION 653 #ifndef GIF_SUPPORT_PLAIN_TEXT_EXTENSION
654 if(*ext_ptr == GIF_BLOCK_PTE) { 654 if(*ext_ptr == GIF_BLOCK_PTE) {
655 status = GIF_D_STATUS_EXT_PTE; 655 status = GIF_D_STATUS_EXT_PTE;
656 } 656 }
657 #endif 657 #endif
658 _gif_save_decoding_status(gif_ptr, status); 658 _gif_save_decoding_status(gif_ptr, status);
659 continue; 659 continue;
660 } 660 }
661 } 661 }
662 } 662 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
702 void _gif_takeover_gce_ptr(gif_decompress_struct_p gif_ptr, GifGCE** gce_ptr_ptr ) 702 void _gif_takeover_gce_ptr(gif_decompress_struct_p gif_ptr, GifGCE** gce_ptr_ptr )
703 { 703 {
704 *gce_ptr_ptr = NULL; 704 *gce_ptr_ptr = NULL;
705 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION 705 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION
706 if(gif_ptr->gce_ptr != NULL && gce_ptr_ptr != NULL) { 706 if(gif_ptr->gce_ptr != NULL && gce_ptr_ptr != NULL) {
707 *gce_ptr_ptr = gif_ptr->gce_ptr; 707 *gce_ptr_ptr = gif_ptr->gce_ptr;
708 gif_ptr->gce_ptr = NULL; 708 gif_ptr->gce_ptr = NULL;
709 } 709 }
710 #endif 710 #endif
711 } 711 }
712 FX_INT32 _gif_decode_extension(gif_decompress_struct_p gif_ptr) 712 int32_t _gif_decode_extension(gif_decompress_struct_p gif_ptr)
713 { 713 {
714 FX_LPBYTE data_size_ptr = NULL; 714 FX_LPBYTE data_size_ptr = NULL;
715 FX_LPBYTE data_ptr = NULL; 715 FX_LPBYTE data_ptr = NULL;
716 FX_DWORD skip_size_org = gif_ptr->skip_size; 716 FX_DWORD skip_size_org = gif_ptr->skip_size;
717 switch(gif_ptr->decode_status) { 717 switch(gif_ptr->decode_status) {
718 #ifdef GIF_SUPPORT_APPLICATION_EXTENSION 718 #ifdef GIF_SUPPORT_APPLICATION_EXTENSION
719 case GIF_D_STATUS_EXT_AE: { 719 case GIF_D_STATUS_EXT_AE: {
720 ASSERT(sizeof(GifAE) == 12); 720 ASSERT(sizeof(GifAE) == 12);
721 GifAE* gif_ae_ptr = NULL; 721 GifAE* gif_ae_ptr = NULL;
722 if(_gif_read_data(gif_ptr, (FX_LPBYTE*)&gif_ae_ptr, 12) == NULL) { 722 if(_gif_read_data(gif_ptr, (FX_LPBYTE*)&gif_ae_ptr, 12) == NULL) {
723 return 2; 723 return 2;
724 } 724 }
725 CFX_ByteString gif_ae_data_str; 725 CFX_ByteString gif_ae_data_str;
726 if(_gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) { 726 if(_gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) {
727 gif_ptr->skip_size = skip_size_org; 727 gif_ptr->skip_size = skip_size_org;
728 return 2; 728 return 2;
729 } 729 }
730 while(*data_size_ptr != GIF_BLOCK_TERMINAL) { 730 while(*data_size_ptr != GIF_BLOCK_TERMINAL) {
731 FX_BYTE data_size = *data_size_ptr; 731 uint8_t data_size = *data_size_ptr;
732 if(_gif_read_data(gif_ptr, &data_ptr, *data_size_ptr) == NUL L || 732 if(_gif_read_data(gif_ptr, &data_ptr, *data_size_ptr) == NUL L ||
733 _gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) { 733 _gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) {
734 gif_ptr->skip_size = skip_size_org; 734 gif_ptr->skip_size = skip_size_org;
735 return 2; 735 return 2;
736 } 736 }
737 gif_ae_data_str += CFX_ByteString((FX_LPCBYTE)data_ptr, data _size); 737 gif_ae_data_str += CFX_ByteString((FX_LPCBYTE)data_ptr, data _size);
738 } 738 }
739 FXSYS_memcpy32(gif_ptr->app_identify, gif_ae_ptr->app_identify, 8); 739 FXSYS_memcpy32(gif_ptr->app_identify, gif_ae_ptr->app_identify, 8);
740 FXSYS_memcpy32(gif_ptr->app_authentication, gif_ae_ptr->app_auth entication, 3); 740 FXSYS_memcpy32(gif_ptr->app_authentication, gif_ae_ptr->app_auth entication, 3);
741 gif_ptr->app_data_size = gif_ae_data_str.GetLength(); 741 gif_ptr->app_data_size = gif_ae_data_str.GetLength();
742 if(gif_ptr->app_data != NULL) { 742 if(gif_ptr->app_data != NULL) {
743 FX_Free(gif_ptr->app_data); 743 FX_Free(gif_ptr->app_data);
744 gif_ptr->app_data = NULL; 744 gif_ptr->app_data = NULL;
745 } 745 }
746 gif_ptr->app_data = FX_Alloc(FX_BYTE, gif_ptr->app_data_size); 746 gif_ptr->app_data = FX_Alloc(uint8_t, gif_ptr->app_data_size);
747 GIF_PTR_NOT_NULL(gif_ptr->app_data, gif_ptr); 747 GIF_PTR_NOT_NULL(gif_ptr->app_data, gif_ptr);
748 FXSYS_memcpy32(gif_ptr->app_data, FX_LPCBYTE(gif_ae_data_str), g if_ptr->app_data_size); 748 FXSYS_memcpy32(gif_ptr->app_data, FX_LPCBYTE(gif_ae_data_str), g if_ptr->app_data_size);
749 } 749 }
750 break; 750 break;
751 #endif 751 #endif
752 #ifdef GIF_SUPPORT_COMMENT_EXTENSION 752 #ifdef GIF_SUPPORT_COMMENT_EXTENSION
753 case GIF_D_STATUS_EXT_CE: { 753 case GIF_D_STATUS_EXT_CE: {
754 if(_gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) { 754 if(_gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) {
755 gif_ptr->skip_size = skip_size_org; 755 gif_ptr->skip_size = skip_size_org;
756 return 2; 756 return 2;
757 } 757 }
758 gif_ptr->cmt_data_ptr->Empty(); 758 gif_ptr->cmt_data_ptr->Empty();
759 while(*data_size_ptr != GIF_BLOCK_TERMINAL) { 759 while(*data_size_ptr != GIF_BLOCK_TERMINAL) {
760 FX_BYTE data_size = *data_size_ptr; 760 uint8_t data_size = *data_size_ptr;
761 if(_gif_read_data(gif_ptr, &data_ptr, *data_size_ptr) == NUL L || 761 if(_gif_read_data(gif_ptr, &data_ptr, *data_size_ptr) == NUL L ||
762 _gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) { 762 _gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) {
763 gif_ptr->skip_size = skip_size_org; 763 gif_ptr->skip_size = skip_size_org;
764 return 2; 764 return 2;
765 } 765 }
766 *(gif_ptr->cmt_data_ptr) += CFX_ByteString((FX_LPCSTR)data_p tr, data_size); 766 *(gif_ptr->cmt_data_ptr) += CFX_ByteString((FX_LPCSTR)data_p tr, data_size);
767 } 767 }
768 } 768 }
769 break; 769 break;
770 #endif 770 #endif
771 #ifdef GIF_SUPPORT_PLAIN_TEXT_EXTENSION 771 #ifdef GIF_SUPPORT_PLAIN_TEXT_EXTENSION
772 case GIF_D_STATUS_EXT_PTE: { 772 case GIF_D_STATUS_EXT_PTE: {
773 ASSERT(sizeof(GifPTE) == 13); 773 ASSERT(sizeof(GifPTE) == 13);
774 GifPTE* gif_pte_ptr = NULL; 774 GifPTE* gif_pte_ptr = NULL;
775 if(_gif_read_data(gif_ptr, (FX_LPBYTE*)&gif_pte_ptr, 13) == NULL ) { 775 if(_gif_read_data(gif_ptr, (FX_LPBYTE*)&gif_pte_ptr, 13) == NULL ) {
776 return 2; 776 return 2;
777 } 777 }
778 GifPlainText* gif_pt_ptr = FX_Alloc(GifPlainText, 1); 778 GifPlainText* gif_pt_ptr = FX_Alloc(GifPlainText, 1);
779 GIF_PTR_NOT_NULL(gif_pt_ptr, gif_ptr); 779 GIF_PTR_NOT_NULL(gif_pt_ptr, gif_ptr);
780 FXSYS_memset32(gif_pt_ptr, 0, sizeof(GifPlainText)); 780 FXSYS_memset32(gif_pt_ptr, 0, sizeof(GifPlainText));
781 _gif_takeover_gce_ptr(gif_ptr, &gif_pt_ptr->gce_ptr); 781 _gif_takeover_gce_ptr(gif_ptr, &gif_pt_ptr->gce_ptr);
782 gif_pt_ptr->pte_ptr = (GifPTE*)FX_Alloc(FX_BYTE, sizeof(GifPTE)) ; 782 gif_pt_ptr->pte_ptr = (GifPTE*)FX_Alloc(uint8_t, sizeof(GifPTE)) ;
783 GIF_PTR_NOT_NULL(gif_pt_ptr->pte_ptr, gif_ptr); 783 GIF_PTR_NOT_NULL(gif_pt_ptr->pte_ptr, gif_ptr);
784 gif_pt_ptr->string_ptr = new CFX_ByteString; 784 gif_pt_ptr->string_ptr = new CFX_ByteString;
785 GIF_PTR_NOT_NULL(gif_pt_ptr->string_ptr, gif_ptr); 785 GIF_PTR_NOT_NULL(gif_pt_ptr->string_ptr, gif_ptr);
786 gif_pt_ptr->pte_ptr->block_size = gif_pte_ptr->block_size; 786 gif_pt_ptr->pte_ptr->block_size = gif_pte_ptr->block_size;
787 gif_pt_ptr->pte_ptr->grid_left = _GetWord_LSBFirst((FX_LPBYTE)&g if_pte_ptr->grid_left); 787 gif_pt_ptr->pte_ptr->grid_left = _GetWord_LSBFirst((FX_LPBYTE)&g if_pte_ptr->grid_left);
788 gif_pt_ptr->pte_ptr->grid_top = _GetWord_LSBFirst((FX_LPBYTE)&gi f_pte_ptr->grid_top); 788 gif_pt_ptr->pte_ptr->grid_top = _GetWord_LSBFirst((FX_LPBYTE)&gi f_pte_ptr->grid_top);
789 gif_pt_ptr->pte_ptr->grid_width = _GetWord_LSBFirst((FX_LPBYTE)& gif_pte_ptr->grid_width); 789 gif_pt_ptr->pte_ptr->grid_width = _GetWord_LSBFirst((FX_LPBYTE)& gif_pte_ptr->grid_width);
790 gif_pt_ptr->pte_ptr->grid_height = _GetWord_LSBFirst((FX_LPBYTE) &gif_pte_ptr->grid_height); 790 gif_pt_ptr->pte_ptr->grid_height = _GetWord_LSBFirst((FX_LPBYTE) &gif_pte_ptr->grid_height);
791 gif_pt_ptr->pte_ptr->char_width = gif_pte_ptr->char_width; 791 gif_pt_ptr->pte_ptr->char_width = gif_pte_ptr->char_width;
792 gif_pt_ptr->pte_ptr->char_height = gif_pte_ptr->char_height; 792 gif_pt_ptr->pte_ptr->char_height = gif_pte_ptr->char_height;
793 gif_pt_ptr->pte_ptr->fc_index = gif_pte_ptr->fc_index; 793 gif_pt_ptr->pte_ptr->fc_index = gif_pte_ptr->fc_index;
794 gif_pt_ptr->pte_ptr->bc_index = gif_pte_ptr->bc_index; 794 gif_pt_ptr->pte_ptr->bc_index = gif_pte_ptr->bc_index;
795 if(_gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) { 795 if(_gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) {
796 gif_ptr->skip_size = skip_size_org; 796 gif_ptr->skip_size = skip_size_org;
797 if(gif_pt_ptr != NULL) { 797 if(gif_pt_ptr != NULL) {
798 if(gif_pt_ptr->gce_ptr != NULL) { 798 if(gif_pt_ptr->gce_ptr != NULL) {
799 FX_Free(gif_pt_ptr->gce_ptr); 799 FX_Free(gif_pt_ptr->gce_ptr);
800 } 800 }
801 if(gif_pt_ptr->pte_ptr != NULL) { 801 if(gif_pt_ptr->pte_ptr != NULL) {
802 FX_Free(gif_pt_ptr->pte_ptr); 802 FX_Free(gif_pt_ptr->pte_ptr);
803 } 803 }
804 if(gif_pt_ptr->string_ptr != NULL) { 804 if(gif_pt_ptr->string_ptr != NULL) {
805 delete gif_pt_ptr->string_ptr; 805 delete gif_pt_ptr->string_ptr;
806 } 806 }
807 FX_Free(gif_pt_ptr); 807 FX_Free(gif_pt_ptr);
808 } 808 }
809 return 2; 809 return 2;
810 } 810 }
811 while(*data_size_ptr != GIF_BLOCK_TERMINAL) { 811 while(*data_size_ptr != GIF_BLOCK_TERMINAL) {
812 FX_BYTE data_size = *data_size_ptr; 812 uint8_t data_size = *data_size_ptr;
813 if(_gif_read_data(gif_ptr, &data_ptr, *data_size_ptr) == NUL L || 813 if(_gif_read_data(gif_ptr, &data_ptr, *data_size_ptr) == NUL L ||
814 _gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) { 814 _gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) {
815 gif_ptr->skip_size = skip_size_org; 815 gif_ptr->skip_size = skip_size_org;
816 if(gif_pt_ptr != NULL) { 816 if(gif_pt_ptr != NULL) {
817 if(gif_pt_ptr->gce_ptr != NULL) { 817 if(gif_pt_ptr->gce_ptr != NULL) {
818 FX_Free(gif_pt_ptr->gce_ptr); 818 FX_Free(gif_pt_ptr->gce_ptr);
819 } 819 }
820 if(gif_pt_ptr->pte_ptr != NULL) { 820 if(gif_pt_ptr->pte_ptr != NULL) {
821 FX_Free(gif_pt_ptr->pte_ptr); 821 FX_Free(gif_pt_ptr->pte_ptr);
822 } 822 }
(...skipping 11 matching lines...) Expand all
834 break; 834 break;
835 #endif 835 #endif
836 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION 836 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION
837 case GIF_D_STATUS_EXT_GCE: { 837 case GIF_D_STATUS_EXT_GCE: {
838 ASSERT(sizeof(GifGCE) == 5); 838 ASSERT(sizeof(GifGCE) == 5);
839 GifGCE* gif_gce_ptr = NULL; 839 GifGCE* gif_gce_ptr = NULL;
840 if(_gif_read_data(gif_ptr, (FX_LPBYTE*)&gif_gce_ptr, 6) == NULL) { 840 if(_gif_read_data(gif_ptr, (FX_LPBYTE*)&gif_gce_ptr, 6) == NULL) {
841 return 2; 841 return 2;
842 } 842 }
843 if(gif_ptr->gce_ptr == NULL) { 843 if(gif_ptr->gce_ptr == NULL) {
844 gif_ptr->gce_ptr = (GifGCE*)FX_Alloc(FX_BYTE, sizeof(GifGCE) ); 844 gif_ptr->gce_ptr = (GifGCE*)FX_Alloc(uint8_t, sizeof(GifGCE) );
845 GIF_PTR_NOT_NULL(gif_ptr->gce_ptr, gif_ptr); 845 GIF_PTR_NOT_NULL(gif_ptr->gce_ptr, gif_ptr);
846 } 846 }
847 gif_ptr->gce_ptr->block_size = gif_gce_ptr->block_size; 847 gif_ptr->gce_ptr->block_size = gif_gce_ptr->block_size;
848 gif_ptr->gce_ptr->gce_flag = gif_gce_ptr->gce_flag; 848 gif_ptr->gce_ptr->gce_flag = gif_gce_ptr->gce_flag;
849 gif_ptr->gce_ptr->delay_time = _GetWord_LSBFirst((FX_LPBYTE)&gif _gce_ptr->delay_time); 849 gif_ptr->gce_ptr->delay_time = _GetWord_LSBFirst((FX_LPBYTE)&gif _gce_ptr->delay_time);
850 gif_ptr->gce_ptr->trans_index = gif_gce_ptr->trans_index; 850 gif_ptr->gce_ptr->trans_index = gif_gce_ptr->trans_index;
851 } 851 }
852 break; 852 break;
853 #endif 853 #endif
854 default: { 854 default: {
(...skipping 15 matching lines...) Expand all
870 _gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL ) { 870 _gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL ) {
871 gif_ptr->skip_size = skip_size_org; 871 gif_ptr->skip_size = skip_size_org;
872 return 2; 872 return 2;
873 } 873 }
874 } 874 }
875 } 875 }
876 } 876 }
877 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_SIG); 877 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_SIG);
878 return 1; 878 return 1;
879 } 879 }
880 FX_INT32 _gif_decode_image_info(gif_decompress_struct_p gif_ptr) 880 int32_t _gif_decode_image_info(gif_decompress_struct_p gif_ptr)
881 { 881 {
882 if(gif_ptr->width == 0 || gif_ptr->height == 0) { 882 if(gif_ptr->width == 0 || gif_ptr->height == 0) {
883 _gif_error(gif_ptr, "No Image Header Info"); 883 _gif_error(gif_ptr, "No Image Header Info");
884 return 0; 884 return 0;
885 } 885 }
886 FX_DWORD skip_size_org = gif_ptr->skip_size; 886 FX_DWORD skip_size_org = gif_ptr->skip_size;
887 ASSERT(sizeof(GifImageInfo) == 9); 887 ASSERT(sizeof(GifImageInfo) == 9);
888 GifImageInfo* gif_img_info_ptr = NULL; 888 GifImageInfo* gif_img_info_ptr = NULL;
889 if(_gif_read_data(gif_ptr, (FX_LPBYTE*)&gif_img_info_ptr, 9) == NULL) { 889 if(_gif_read_data(gif_ptr, (FX_LPBYTE*)&gif_img_info_ptr, 9) == NULL) {
890 return 2; 890 return 2;
891 } 891 }
892 GifImage* gif_image_ptr = (GifImage*)FX_Alloc(FX_BYTE, sizeof(GifImage)); 892 GifImage* gif_image_ptr = (GifImage*)FX_Alloc(uint8_t, sizeof(GifImage));
893 GIF_PTR_NOT_NULL(gif_image_ptr, gif_ptr); 893 GIF_PTR_NOT_NULL(gif_image_ptr, gif_ptr);
894 FXSYS_memset32(gif_image_ptr, 0, sizeof(GifImage)); 894 FXSYS_memset32(gif_image_ptr, 0, sizeof(GifImage));
895 gif_image_ptr->image_info_ptr = (GifImageInfo*)FX_Alloc(FX_BYTE, sizeof(GifI mageInfo)); 895 gif_image_ptr->image_info_ptr = (GifImageInfo*)FX_Alloc(uint8_t, sizeof(GifI mageInfo));
896 GIF_PTR_NOT_NULL(gif_image_ptr->image_info_ptr, gif_ptr); 896 GIF_PTR_NOT_NULL(gif_image_ptr->image_info_ptr, gif_ptr);
897 gif_image_ptr->image_info_ptr->left = _GetWord_LSBFirst((FX_LPBYTE)&gif_img_ info_ptr->left); 897 gif_image_ptr->image_info_ptr->left = _GetWord_LSBFirst((FX_LPBYTE)&gif_img_ info_ptr->left);
898 gif_image_ptr->image_info_ptr->top = _GetWord_LSBFirst((FX_LPBYTE)&gif_img_i nfo_ptr->top); 898 gif_image_ptr->image_info_ptr->top = _GetWord_LSBFirst((FX_LPBYTE)&gif_img_i nfo_ptr->top);
899 gif_image_ptr->image_info_ptr->width = _GetWord_LSBFirst((FX_LPBYTE)&gif_img _info_ptr->width); 899 gif_image_ptr->image_info_ptr->width = _GetWord_LSBFirst((FX_LPBYTE)&gif_img _info_ptr->width);
900 gif_image_ptr->image_info_ptr->height = _GetWord_LSBFirst((FX_LPBYTE)&gif_im g_info_ptr->height); 900 gif_image_ptr->image_info_ptr->height = _GetWord_LSBFirst((FX_LPBYTE)&gif_im g_info_ptr->height);
901 gif_image_ptr->image_info_ptr->local_flag = gif_img_info_ptr->local_flag; 901 gif_image_ptr->image_info_ptr->local_flag = gif_img_info_ptr->local_flag;
902 if(gif_image_ptr->image_info_ptr->left + gif_image_ptr->image_info_ptr->widt h > gif_ptr->width || 902 if(gif_image_ptr->image_info_ptr->left + gif_image_ptr->image_info_ptr->widt h > gif_ptr->width ||
903 gif_image_ptr->image_info_ptr->top + gif_image_ptr->image_info_ptr-> height > gif_ptr->height) { 903 gif_image_ptr->image_info_ptr->top + gif_image_ptr->image_info_ptr-> height > gif_ptr->height) {
904 if(gif_image_ptr->image_info_ptr != NULL) { 904 if(gif_image_ptr->image_info_ptr != NULL) {
905 FX_Free(gif_image_ptr->image_info_ptr); 905 FX_Free(gif_image_ptr->image_info_ptr);
906 } 906 }
907 if(gif_image_ptr->image_row_buf != NULL) { 907 if(gif_image_ptr->image_row_buf != NULL) {
908 FX_Free(gif_image_ptr->image_row_buf); 908 FX_Free(gif_image_ptr->image_row_buf);
909 } 909 }
910 FX_Free(gif_image_ptr); 910 FX_Free(gif_image_ptr);
911 _gif_error(gif_ptr, "Image Data Out Of LSD, The File May Be Corrupt"); 911 _gif_error(gif_ptr, "Image Data Out Of LSD, The File May Be Corrupt");
912 return 0; 912 return 0;
913 } 913 }
914 GifLF* gif_img_info_lf_ptr = (GifLF*)&gif_img_info_ptr->local_flag; 914 GifLF* gif_img_info_lf_ptr = (GifLF*)&gif_img_info_ptr->local_flag;
915 if(gif_img_info_lf_ptr->local_pal) { 915 if(gif_img_info_lf_ptr->local_pal) {
916 ASSERT(sizeof(GifPalette) == 3); 916 ASSERT(sizeof(GifPalette) == 3);
917 FX_INT32 loc_pal_size = (2 << gif_img_info_lf_ptr->pal_bits) * 3; 917 int32_t loc_pal_size = (2 << gif_img_info_lf_ptr->pal_bits) * 3;
918 FX_LPBYTE loc_pal_ptr = NULL; 918 FX_LPBYTE loc_pal_ptr = NULL;
919 if(_gif_read_data(gif_ptr, &loc_pal_ptr, loc_pal_size) == NULL) { 919 if(_gif_read_data(gif_ptr, &loc_pal_ptr, loc_pal_size) == NULL) {
920 gif_ptr->skip_size = skip_size_org; 920 gif_ptr->skip_size = skip_size_org;
921 if(gif_image_ptr->image_info_ptr != NULL) { 921 if(gif_image_ptr->image_info_ptr != NULL) {
922 FX_Free(gif_image_ptr->image_info_ptr); 922 FX_Free(gif_image_ptr->image_info_ptr);
923 } 923 }
924 if(gif_image_ptr->image_row_buf != NULL) { 924 if(gif_image_ptr->image_row_buf != NULL) {
925 FX_Free(gif_image_ptr->image_row_buf); 925 FX_Free(gif_image_ptr->image_row_buf);
926 } 926 }
927 FX_Free(gif_image_ptr); 927 FX_Free(gif_image_ptr);
(...skipping 20 matching lines...) Expand all
948 return 2; 948 return 2;
949 } 949 }
950 gif_image_ptr->image_code_size = *code_size_ptr; 950 gif_image_ptr->image_code_size = *code_size_ptr;
951 gif_ptr->_gif_record_current_position_fn(gif_ptr, &gif_image_ptr->image_data _pos); 951 gif_ptr->_gif_record_current_position_fn(gif_ptr, &gif_image_ptr->image_data _pos);
952 gif_image_ptr->image_data_pos += gif_ptr->skip_size; 952 gif_image_ptr->image_data_pos += gif_ptr->skip_size;
953 _gif_takeover_gce_ptr(gif_ptr, &gif_image_ptr->image_gce_ptr); 953 _gif_takeover_gce_ptr(gif_ptr, &gif_image_ptr->image_gce_ptr);
954 gif_ptr->img_ptr_arr_ptr->Add(gif_image_ptr); 954 gif_ptr->img_ptr_arr_ptr->Add(gif_image_ptr);
955 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_IMG_DATA); 955 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_IMG_DATA);
956 return 1; 956 return 1;
957 } 957 }
958 FX_INT32 _gif_load_frame(gif_decompress_struct_p gif_ptr, FX_INT32 frame_num) 958 int32_t _gif_load_frame(gif_decompress_struct_p gif_ptr, int32_t frame_num)
959 { 959 {
960 if(gif_ptr == NULL || 960 if(gif_ptr == NULL ||
961 frame_num < 0 || 961 frame_num < 0 ||
962 frame_num >= gif_ptr->img_ptr_arr_ptr->GetSize() 962 frame_num >= gif_ptr->img_ptr_arr_ptr->GetSize()
963 ) { 963 ) {
964 return 0; 964 return 0;
965 } 965 }
966 FX_LPBYTE data_size_ptr = NULL; 966 FX_LPBYTE data_size_ptr = NULL;
967 FX_LPBYTE data_ptr = NULL; 967 FX_LPBYTE data_ptr = NULL;
968 FX_DWORD skip_size_org = gif_ptr->skip_size; 968 FX_DWORD skip_size_org = gif_ptr->skip_size;
969 GifImage* gif_image_ptr = gif_ptr->img_ptr_arr_ptr->GetAt(frame_num); 969 GifImage* gif_image_ptr = gif_ptr->img_ptr_arr_ptr->GetAt(frame_num);
970 FX_DWORD gif_img_row_bytes = gif_image_ptr->image_info_ptr->width; 970 FX_DWORD gif_img_row_bytes = gif_image_ptr->image_info_ptr->width;
971 if(gif_ptr->decode_status == GIF_D_STATUS_TAIL) { 971 if(gif_ptr->decode_status == GIF_D_STATUS_TAIL) {
972 if(gif_image_ptr->image_row_buf) { 972 if(gif_image_ptr->image_row_buf) {
973 FX_Free(gif_image_ptr->image_row_buf); 973 FX_Free(gif_image_ptr->image_row_buf);
974 gif_image_ptr->image_row_buf = NULL; 974 gif_image_ptr->image_row_buf = NULL;
975 } 975 }
976 gif_image_ptr->image_row_buf = FX_Alloc(FX_BYTE, gif_img_row_bytes); 976 gif_image_ptr->image_row_buf = FX_Alloc(uint8_t, gif_img_row_bytes);
977 GIF_PTR_NOT_NULL(gif_image_ptr->image_row_buf, gif_ptr); 977 GIF_PTR_NOT_NULL(gif_image_ptr->image_row_buf, gif_ptr);
978 GifGCE* gif_img_gce_ptr = gif_image_ptr->image_gce_ptr; 978 GifGCE* gif_img_gce_ptr = gif_image_ptr->image_gce_ptr;
979 FX_INT32 loc_pal_num = ((GifLF*)&gif_image_ptr->image_info_ptr->local_fl ag)->local_pal ? 979 int32_t loc_pal_num = ((GifLF*)&gif_image_ptr->image_info_ptr->local_fla g)->local_pal ?
980 (2 << ((GifLF*)&gif_image_ptr->image_info_ptr->lo cal_flag)->pal_bits) : 0; 980 (2 << ((GifLF*)&gif_image_ptr->image_info_ptr->lo cal_flag)->pal_bits) : 0;
981 gif_ptr->avail_in = 0; 981 gif_ptr->avail_in = 0;
982 if(gif_img_gce_ptr == NULL) { 982 if(gif_img_gce_ptr == NULL) {
983 FX_BOOL bRes = gif_ptr->_gif_get_record_position_fn(gif_ptr, gif_ima ge_ptr->image_data_pos, 983 FX_BOOL bRes = gif_ptr->_gif_get_record_position_fn(gif_ptr, gif_ima ge_ptr->image_data_pos,
984 gif_image_ptr->image_info_ptr->left, 984 gif_image_ptr->image_info_ptr->left,
985 gif_image_ptr->image_info_ptr->top, 985 gif_image_ptr->image_info_ptr->top,
986 gif_image_ptr->image_info_ptr->width, 986 gif_image_ptr->image_info_ptr->width,
987 gif_image_ptr->image_info_ptr->height, 987 gif_image_ptr->image_info_ptr->height,
988 loc_pal_num, gif_image_ptr->local_pal_ptr, 988 loc_pal_num, gif_image_ptr->local_pal_ptr,
989 0, 0, -1, 0, 989 0, 0, -1, 0,
990 (FX_BOOL)((GifLF*)&gif_image_ptr->image_info_ptr->loc al_flag)->interlace 990 (FX_BOOL)((GifLF*)&gif_image_ptr->image_info_ptr->loc al_flag)->interlace
991 ); 991 );
992 if(!bRes) { 992 if(!bRes) {
993 FX_Free(gif_image_ptr->image_row_buf); 993 FX_Free(gif_image_ptr->image_row_buf);
994 gif_image_ptr->image_row_buf = NULL; 994 gif_image_ptr->image_row_buf = NULL;
995 _gif_error(gif_ptr, "Error Read Record Position Data"); 995 _gif_error(gif_ptr, "Error Read Record Position Data");
996 return 0; 996 return 0;
997 } 997 }
998 } else { 998 } else {
999 FX_BOOL bRes = gif_ptr->_gif_get_record_position_fn(gif_ptr, gif_ima ge_ptr->image_data_pos, 999 FX_BOOL bRes = gif_ptr->_gif_get_record_position_fn(gif_ptr, gif_ima ge_ptr->image_data_pos,
1000 gif_image_ptr->image_info_ptr->left, 1000 gif_image_ptr->image_info_ptr->left,
1001 gif_image_ptr->image_info_ptr->top, 1001 gif_image_ptr->image_info_ptr->top,
1002 gif_image_ptr->image_info_ptr->width, 1002 gif_image_ptr->image_info_ptr->width,
1003 gif_image_ptr->image_info_ptr->height, 1003 gif_image_ptr->image_info_ptr->height,
1004 loc_pal_num, gif_image_ptr->local_pal_ptr, 1004 loc_pal_num, gif_image_ptr->local_pal_ptr,
1005 (FX_INT32)gif_image_ptr->image_gce_ptr->delay_time, 1005 (int32_t)gif_image_ptr->image_gce_ptr->delay_time,
1006 (FX_BOOL)((GifCEF*)&gif_image_ptr->image_gce_ptr->gce _flag)->user_input, 1006 (FX_BOOL)((GifCEF*)&gif_image_ptr->image_gce_ptr->gce _flag)->user_input,
1007 ((GifCEF*)&gif_image_ptr->image_gce_ptr->gce_flag)->t ransparency ? 1007 ((GifCEF*)&gif_image_ptr->image_gce_ptr->gce_flag)->t ransparency ?
1008 (FX_INT32)gif_image_ptr->image_gce_ptr->trans_index : -1, 1008 (int32_t)gif_image_ptr->image_gce_ptr->trans_index : -1,
1009 (FX_INT32)((GifCEF*)&gif_image_ptr->image_gce_ptr->gc e_flag)->disposal_method, 1009 (int32_t)((GifCEF*)&gif_image_ptr->image_gce_ptr->gce _flag)->disposal_method,
1010 (FX_BOOL)((GifLF*)&gif_image_ptr->image_info_ptr->loc al_flag)->interlace 1010 (FX_BOOL)((GifLF*)&gif_image_ptr->image_info_ptr->loc al_flag)->interlace
1011 ); 1011 );
1012 if(!bRes) { 1012 if(!bRes) {
1013 FX_Free(gif_image_ptr->image_row_buf); 1013 FX_Free(gif_image_ptr->image_row_buf);
1014 gif_image_ptr->image_row_buf = NULL; 1014 gif_image_ptr->image_row_buf = NULL;
1015 _gif_error(gif_ptr, "Error Read Record Position Data"); 1015 _gif_error(gif_ptr, "Error Read Record Position Data");
1016 return 0; 1016 return 0;
1017 } 1017 }
1018 } 1018 }
1019 if(gif_ptr->img_decoder_ptr == NULL) { 1019 if(gif_ptr->img_decoder_ptr == NULL) {
(...skipping 14 matching lines...) Expand all
1034 } 1034 }
1035 if(*data_size_ptr != GIF_BLOCK_TERMINAL) { 1035 if(*data_size_ptr != GIF_BLOCK_TERMINAL) {
1036 if(_gif_read_data(gif_ptr, &data_ptr, *data_size_ptr) == NULL) { 1036 if(_gif_read_data(gif_ptr, &data_ptr, *data_size_ptr) == NULL) {
1037 gif_ptr->skip_size = skip_size_org; 1037 gif_ptr->skip_size = skip_size_org;
1038 return 2; 1038 return 2;
1039 } 1039 }
1040 img_decoder_ptr->Input(data_ptr, *data_size_ptr); 1040 img_decoder_ptr->Input(data_ptr, *data_size_ptr);
1041 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_IMG_DATA); 1041 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_IMG_DATA);
1042 gif_ptr->img_row_offset += gif_ptr->img_row_avail_size; 1042 gif_ptr->img_row_offset += gif_ptr->img_row_avail_size;
1043 gif_ptr->img_row_avail_size = gif_img_row_bytes - gif_ptr->img_row_o ffset; 1043 gif_ptr->img_row_avail_size = gif_img_row_bytes - gif_ptr->img_row_o ffset;
1044 FX_INT32 ret = img_decoder_ptr->Decode(gif_image_ptr->image_row_buf + gif_ptr->img_row_offset, gif_ptr->img_row_avail_size); 1044 int32_t ret = img_decoder_ptr->Decode(gif_image_ptr->image_row_buf + gif_ptr->img_row_offset, gif_ptr->img_row_avail_size);
1045 if(ret == 0) { 1045 if(ret == 0) {
1046 FX_Free(gif_image_ptr->image_row_buf); 1046 FX_Free(gif_image_ptr->image_row_buf);
1047 gif_image_ptr->image_row_buf = NULL; 1047 gif_image_ptr->image_row_buf = NULL;
1048 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_TAIL); 1048 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_TAIL);
1049 _gif_error(gif_ptr, "Decode Image Data Error"); 1049 _gif_error(gif_ptr, "Decode Image Data Error");
1050 return 0; 1050 return 0;
1051 } 1051 }
1052 while (ret != 0) { 1052 while (ret != 0) {
1053 if(ret == 1) { 1053 if(ret == 1) {
1054 gif_ptr->_gif_get_row_fn(gif_ptr, gif_image_ptr->image_row_n um, gif_image_ptr->image_row_buf); 1054 gif_ptr->_gif_get_row_fn(gif_ptr, gif_image_ptr->image_row_n um, gif_image_ptr->image_row_buf);
(...skipping 17 matching lines...) Expand all
1072 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_IMG_DATA ); 1072 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_IMG_DATA );
1073 gif_ptr->img_row_offset += gif_ptr->img_row_avail_size; 1073 gif_ptr->img_row_offset += gif_ptr->img_row_avail_size;
1074 gif_ptr->img_row_avail_size = gif_img_row_bytes - gif_pt r->img_row_offset; 1074 gif_ptr->img_row_avail_size = gif_img_row_bytes - gif_pt r->img_row_offset;
1075 ret = img_decoder_ptr->Decode(gif_image_ptr->image_row_b uf + gif_ptr->img_row_offset, gif_ptr->img_row_avail_size); 1075 ret = img_decoder_ptr->Decode(gif_image_ptr->image_row_b uf + gif_ptr->img_row_offset, gif_ptr->img_row_avail_size);
1076 } 1076 }
1077 } 1077 }
1078 if(ret == 3) { 1078 if(ret == 3) {
1079 if(((GifLF*)&gif_image_ptr->image_info_ptr->local_flag)->int erlace) { 1079 if(((GifLF*)&gif_image_ptr->image_info_ptr->local_flag)->int erlace) {
1080 gif_ptr->_gif_get_row_fn(gif_ptr, gif_image_ptr->image_r ow_num, gif_image_ptr->image_row_buf); 1080 gif_ptr->_gif_get_row_fn(gif_ptr, gif_image_ptr->image_r ow_num, gif_image_ptr->image_row_buf);
1081 gif_image_ptr->image_row_num += s_gif_interlace_step[gif _ptr->img_pass_num]; 1081 gif_image_ptr->image_row_num += s_gif_interlace_step[gif _ptr->img_pass_num];
1082 if(gif_image_ptr->image_row_num >= (FX_INT32)gif_image_p tr->image_info_ptr->height) { 1082 if(gif_image_ptr->image_row_num >= (int32_t)gif_image_pt r->image_info_ptr->height) {
1083 gif_ptr->img_pass_num++; 1083 gif_ptr->img_pass_num++;
1084 gif_image_ptr->image_row_num = s_gif_interlace_step[ gif_ptr->img_pass_num] / 2; 1084 gif_image_ptr->image_row_num = s_gif_interlace_step[ gif_ptr->img_pass_num] / 2;
1085 } 1085 }
1086 } else { 1086 } else {
1087 gif_ptr->_gif_get_row_fn(gif_ptr, gif_image_ptr->image_r ow_num++, gif_image_ptr->image_row_buf); 1087 gif_ptr->_gif_get_row_fn(gif_ptr, gif_image_ptr->image_r ow_num++, gif_image_ptr->image_row_buf);
1088 } 1088 }
1089 gif_ptr->img_row_offset = 0; 1089 gif_ptr->img_row_offset = 0;
1090 gif_ptr->img_row_avail_size = gif_img_row_bytes; 1090 gif_ptr->img_row_avail_size = gif_img_row_bytes;
1091 ret = img_decoder_ptr->Decode(gif_image_ptr->image_row_buf + gif_ptr->img_row_offset, gif_ptr->img_row_avail_size); 1091 ret = img_decoder_ptr->Decode(gif_image_ptr->image_row_buf + gif_ptr->img_row_offset, gif_ptr->img_row_avail_size);
1092 } 1092 }
1093 if(ret == 0) { 1093 if(ret == 0) {
1094 FX_Free(gif_image_ptr->image_row_buf); 1094 FX_Free(gif_image_ptr->image_row_buf);
1095 gif_image_ptr->image_row_buf = NULL; 1095 gif_image_ptr->image_row_buf = NULL;
1096 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_TAIL); 1096 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_TAIL);
1097 _gif_error(gif_ptr, "Decode Image Data Error"); 1097 _gif_error(gif_ptr, "Decode Image Data Error");
1098 return 0; 1098 return 0;
1099 } 1099 }
1100 } 1100 }
1101 } 1101 }
1102 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_TAIL); 1102 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_TAIL);
1103 } 1103 }
1104 _gif_error(gif_ptr, "Decode Image Data Error"); 1104 _gif_error(gif_ptr, "Decode Image Data Error");
1105 return 0; 1105 return 0;
1106 } 1106 }
1107 void _gif_save_decoding_status(gif_decompress_struct_p gif_ptr, FX_INT32 status) 1107 void _gif_save_decoding_status(gif_decompress_struct_p gif_ptr, int32_t status)
1108 { 1108 {
1109 gif_ptr->decode_status = status; 1109 gif_ptr->decode_status = status;
1110 gif_ptr->next_in += gif_ptr->skip_size; 1110 gif_ptr->next_in += gif_ptr->skip_size;
1111 gif_ptr->avail_in -= gif_ptr->skip_size; 1111 gif_ptr->avail_in -= gif_ptr->skip_size;
1112 gif_ptr->skip_size = 0; 1112 gif_ptr->skip_size = 0;
1113 } 1113 }
1114 FX_LPBYTE _gif_read_data(gif_decompress_struct_p gif_ptr, FX_LPBYTE* des_buf_pp, FX_DWORD data_size) 1114 FX_LPBYTE _gif_read_data(gif_decompress_struct_p gif_ptr, FX_LPBYTE* des_buf_pp, FX_DWORD data_size)
1115 { 1115 {
1116 if(gif_ptr == NULL || 1116 if(gif_ptr == NULL ||
1117 gif_ptr->avail_in < gif_ptr->skip_size + data_size) { 1117 gif_ptr->avail_in < gif_ptr->skip_size + data_size) {
(...skipping 12 matching lines...) Expand all
1130 FX_DWORD _gif_get_avail_input(gif_decompress_struct_p gif_ptr, FX_LPBYTE* avial_ buf_ptr) 1130 FX_DWORD _gif_get_avail_input(gif_decompress_struct_p gif_ptr, FX_LPBYTE* avial_ buf_ptr)
1131 { 1131 {
1132 if(avial_buf_ptr != NULL) { 1132 if(avial_buf_ptr != NULL) {
1133 *avial_buf_ptr = NULL; 1133 *avial_buf_ptr = NULL;
1134 if(gif_ptr->avail_in > 0) { 1134 if(gif_ptr->avail_in > 0) {
1135 *avial_buf_ptr = gif_ptr->next_in; 1135 *avial_buf_ptr = gif_ptr->next_in;
1136 } 1136 }
1137 } 1137 }
1138 return gif_ptr->avail_in; 1138 return gif_ptr->avail_in;
1139 } 1139 }
1140 FX_INT32 _gif_get_frame_num(gif_decompress_struct_p gif_ptr) 1140 int32_t _gif_get_frame_num(gif_decompress_struct_p gif_ptr)
1141 { 1141 {
1142 return gif_ptr->img_ptr_arr_ptr->GetSize(); 1142 return gif_ptr->img_ptr_arr_ptr->GetSize();
1143 } 1143 }
1144 static FX_BOOL _gif_write_header( gif_compress_struct_p gif_ptr, FX_LPBYTE& dst_ buf, FX_DWORD& dst_len ) 1144 static FX_BOOL _gif_write_header( gif_compress_struct_p gif_ptr, FX_LPBYTE& dst_ buf, FX_DWORD& dst_len )
1145 { 1145 {
1146 if (gif_ptr->cur_offset) { 1146 if (gif_ptr->cur_offset) {
1147 return TRUE; 1147 return TRUE;
1148 } 1148 }
1149 dst_len = sizeof(GifHeader) + sizeof(GifLSD) + sizeof(GifGF); 1149 dst_len = sizeof(GifHeader) + sizeof(GifLSD) + sizeof(GifGF);
1150 dst_buf = FX_TryAlloc(FX_BYTE, dst_len); 1150 dst_buf = FX_TryAlloc(uint8_t, dst_len);
1151 if (dst_buf == NULL) { 1151 if (dst_buf == NULL) {
1152 return FALSE; 1152 return FALSE;
1153 } 1153 }
1154 FXSYS_memset32(dst_buf, 0, dst_len); 1154 FXSYS_memset32(dst_buf, 0, dst_len);
1155 FXSYS_memcpy32(dst_buf, gif_ptr->header_ptr, sizeof(GifHeader)); 1155 FXSYS_memcpy32(dst_buf, gif_ptr->header_ptr, sizeof(GifHeader));
1156 gif_ptr->cur_offset += sizeof(GifHeader); 1156 gif_ptr->cur_offset += sizeof(GifHeader);
1157 _SetWord_LSBFirst(dst_buf + gif_ptr->cur_offset, gif_ptr->lsd_ptr->width); 1157 _SetWord_LSBFirst(dst_buf + gif_ptr->cur_offset, gif_ptr->lsd_ptr->width);
1158 gif_ptr->cur_offset += 2; 1158 gif_ptr->cur_offset += 2;
1159 _SetWord_LSBFirst(dst_buf + gif_ptr->cur_offset, gif_ptr->lsd_ptr->height); 1159 _SetWord_LSBFirst(dst_buf + gif_ptr->cur_offset, gif_ptr->lsd_ptr->height);
1160 gif_ptr->cur_offset += 2; 1160 gif_ptr->cur_offset += 2;
(...skipping 20 matching lines...) Expand all
1181 while (row < height) { 1181 while (row < height) {
1182 if (row % 8 == 0) { 1182 if (row % 8 == 0) {
1183 j = 0; 1183 j = 0;
1184 } else if (row % 4 == 0) { 1184 } else if (row % 4 == 0) {
1185 j = 1; 1185 j = 1;
1186 } else if (row % 2 == 0) { 1186 } else if (row % 2 == 0) {
1187 j = 2; 1187 j = 2;
1188 } else { 1188 } else {
1189 j = 3; 1189 j = 3;
1190 } 1190 }
1191 temp = FX_Alloc(FX_BYTE, pitch); 1191 temp = FX_Alloc(uint8_t, pitch);
1192 if (temp == NULL) { 1192 if (temp == NULL) {
1193 return; 1193 return;
1194 } 1194 }
1195 FXSYS_memcpy32(temp, &buf[pitch * row], pitch); 1195 FXSYS_memcpy32(temp, &buf[pitch * row], pitch);
1196 pass[j].Add(temp); 1196 pass[j].Add(temp);
1197 row ++; 1197 row ++;
1198 } 1198 }
1199 for (i = 0, row = 0; i < 4; i++) { 1199 for (i = 0, row = 0; i < 4; i++) {
1200 for (j = 0; j < pass[i].GetSize(); j++, row++) { 1200 for (j = 0; j < pass[i].GetSize(); j++, row++) {
1201 FXSYS_memcpy32((FX_LPBYTE)&buf[pitch * row], pass[i].GetAt(j), pitch ); 1201 FXSYS_memcpy32((FX_LPBYTE)&buf[pitch * row], pass[i].GetAt(j), pitch );
1202 FX_Free(pass[i].GetAt(j)); 1202 FX_Free(pass[i].GetAt(j));
1203 } 1203 }
1204 } 1204 }
1205 } 1205 }
1206 static void _gif_write_block_data(FX_LPCBYTE src_buf, FX_DWORD src_len, FX_LPBYT E& dst_buf, FX_DWORD& dst_len, FX_DWORD& dst_offset) 1206 static void _gif_write_block_data(FX_LPCBYTE src_buf, FX_DWORD src_len, FX_LPBYT E& dst_buf, FX_DWORD& dst_len, FX_DWORD& dst_offset)
1207 { 1207 {
1208 FX_DWORD src_offset = 0; 1208 FX_DWORD src_offset = 0;
1209 while (src_len > GIF_DATA_BLOCK) { 1209 while (src_len > GIF_DATA_BLOCK) {
1210 dst_buf[dst_offset++] = GIF_DATA_BLOCK; 1210 dst_buf[dst_offset++] = GIF_DATA_BLOCK;
1211 FXSYS_memcpy32(&dst_buf[dst_offset], &src_buf[src_offset], GIF_DATA_BLOC K); 1211 FXSYS_memcpy32(&dst_buf[dst_offset], &src_buf[src_offset], GIF_DATA_BLOC K);
1212 dst_offset += GIF_DATA_BLOCK; 1212 dst_offset += GIF_DATA_BLOCK;
1213 src_offset += GIF_DATA_BLOCK; 1213 src_offset += GIF_DATA_BLOCK;
1214 src_len -= GIF_DATA_BLOCK; 1214 src_len -= GIF_DATA_BLOCK;
1215 } 1215 }
1216 dst_buf[dst_offset++] = (FX_BYTE)src_len; 1216 dst_buf[dst_offset++] = (uint8_t)src_len;
1217 FXSYS_memcpy32(&dst_buf[dst_offset], &src_buf[src_offset], src_len); 1217 FXSYS_memcpy32(&dst_buf[dst_offset], &src_buf[src_offset], src_len);
1218 dst_offset += src_len; 1218 dst_offset += src_len;
1219 } 1219 }
1220 static FX_BOOL _gif_write_data( gif_compress_struct_p gif_ptr, FX_LPBYTE& dst_bu f, FX_DWORD& dst_len ) 1220 static FX_BOOL _gif_write_data( gif_compress_struct_p gif_ptr, FX_LPBYTE& dst_bu f, FX_DWORD& dst_len )
1221 { 1221 {
1222 if (!_gif_grow_buf(dst_buf, dst_len, gif_ptr->cur_offset + GIF_DATA_BLOCK)) { 1222 if (!_gif_grow_buf(dst_buf, dst_len, gif_ptr->cur_offset + GIF_DATA_BLOCK)) {
1223 return FALSE; 1223 return FALSE;
1224 } 1224 }
1225 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION 1225 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION
1226 if (FXSYS_memcmp32(gif_ptr->header_ptr->version, "89a", 3) == 0) { 1226 if (FXSYS_memcmp32(gif_ptr->header_ptr->version, "89a", 3) == 0) {
(...skipping 26 matching lines...) Expand all
1253 FX_DWORD pal_size = sizeof(GifPalette) * gif_ptr->lpal_num; 1253 FX_DWORD pal_size = sizeof(GifPalette) * gif_ptr->lpal_num;
1254 if (!_gif_grow_buf(dst_buf, dst_len, pal_size + gif_ptr->cur_offset)) { 1254 if (!_gif_grow_buf(dst_buf, dst_len, pal_size + gif_ptr->cur_offset)) {
1255 return FALSE; 1255 return FALSE;
1256 } 1256 }
1257 FXSYS_memcpy32(&dst_buf[gif_ptr->cur_offset], gif_ptr->local_pal, pal_si ze); 1257 FXSYS_memcpy32(&dst_buf[gif_ptr->cur_offset], gif_ptr->local_pal, pal_si ze);
1258 gif_ptr->cur_offset += pal_size; 1258 gif_ptr->cur_offset += pal_size;
1259 } 1259 }
1260 if (lf.interlace) { 1260 if (lf.interlace) {
1261 interlace_buf(gif_ptr->src_buf, gif_ptr->src_pitch, gif_ptr->image_info_ ptr->height); 1261 interlace_buf(gif_ptr->src_buf, gif_ptr->src_pitch, gif_ptr->image_info_ ptr->height);
1262 } 1262 }
1263 FX_BYTE code_bit = lf.pal_bits; 1263 uint8_t code_bit = lf.pal_bits;
1264 if (lf.local_pal == 0) { 1264 if (lf.local_pal == 0) {
1265 GifGF& gf = (GifGF&)gif_ptr->lsd_ptr->global_flag; 1265 GifGF& gf = (GifGF&)gif_ptr->lsd_ptr->global_flag;
1266 code_bit = gf.pal_bits; 1266 code_bit = gf.pal_bits;
1267 } 1267 }
1268 gif_ptr->img_encoder_ptr->Start(code_bit, gif_ptr->src_buf, dst_buf, gif_ptr ->cur_offset); 1268 gif_ptr->img_encoder_ptr->Start(code_bit, gif_ptr->src_buf, dst_buf, gif_ptr ->cur_offset);
1269 FX_DWORD i; 1269 FX_DWORD i;
1270 for (i = 0; i < gif_ptr->src_row; i++) { 1270 for (i = 0; i < gif_ptr->src_row; i++) {
1271 if (!gif_ptr->img_encoder_ptr->Encode(&gif_ptr->src_buf[i * gif_ptr->src _pitch], gif_ptr->src_width * (code_bit + 1), 1271 if (!gif_ptr->img_encoder_ptr->Encode(&gif_ptr->src_buf[i * gif_ptr->src _pitch], gif_ptr->src_width * (code_bit + 1),
1272 dst_buf, dst_len, gif_ptr->cur_off set)) { 1272 dst_buf, dst_len, gif_ptr->cur_off set)) {
1273 return FALSE; 1273 return FALSE;
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
1340 gif_ptr->cur_offset = cur_offset; 1340 gif_ptr->cur_offset = cur_offset;
1341 res = FALSE; 1341 res = FALSE;
1342 } 1342 }
1343 dst_len = gif_ptr->cur_offset; 1343 dst_len = gif_ptr->cur_offset;
1344 dst_buf[dst_len - 1] = GIF_SIG_TRAILER; 1344 dst_buf[dst_len - 1] = GIF_SIG_TRAILER;
1345 if (res) { 1345 if (res) {
1346 gif_ptr->frames++; 1346 gif_ptr->frames++;
1347 } 1347 }
1348 return res; 1348 return res;
1349 } 1349 }
OLDNEW
« no previous file with comments | « core/src/fxcodec/lgif/fx_gif.h ('k') | core/src/fxcrt/extension.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698