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

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

Issue 1720043003: Remove foo != NULL outside of xfa/ (Closed) Base URL: https://pdfium.googlesource.com/pdfium@master
Patch Set: rebase Created 4 years, 10 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/fx_basic_maps.cpp » ('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 "core/src/fxcodec/lgif/fx_gif.h" 7 #include "core/src/fxcodec/lgif/fx_gif.h"
8 void CGifLZWDecoder::Input(uint8_t* src_buf, FX_DWORD src_size) { 8 void CGifLZWDecoder::Input(uint8_t* src_buf, FX_DWORD src_size) {
9 next_in = src_buf; 9 next_in = src_buf;
10 avail_in = src_size; 10 avail_in = src_size;
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 gif_ptr->pt_ptr_arr_ptr = new CFX_ArrayTemplate<GifPlainText*>; 369 gif_ptr->pt_ptr_arr_ptr = new CFX_ArrayTemplate<GifPlainText*>;
370 #endif 370 #endif
371 return gif_ptr; 371 return gif_ptr;
372 } 372 }
373 void _gif_destroy_decompress(gif_decompress_struct_pp gif_ptr_ptr) { 373 void _gif_destroy_decompress(gif_decompress_struct_pp gif_ptr_ptr) {
374 if (gif_ptr_ptr == NULL || *gif_ptr_ptr == NULL) { 374 if (gif_ptr_ptr == NULL || *gif_ptr_ptr == NULL) {
375 return; 375 return;
376 } 376 }
377 gif_decompress_struct_p gif_ptr = *gif_ptr_ptr; 377 gif_decompress_struct_p gif_ptr = *gif_ptr_ptr;
378 *gif_ptr_ptr = NULL; 378 *gif_ptr_ptr = NULL;
379 if (gif_ptr->global_pal_ptr != NULL) { 379 FX_Free(gif_ptr->global_pal_ptr);
380 FX_Free(gif_ptr->global_pal_ptr); 380 delete gif_ptr->img_decoder_ptr;
381 } 381 if (gif_ptr->img_ptr_arr_ptr) {
382 if (gif_ptr->img_decoder_ptr != NULL) {
383 delete gif_ptr->img_decoder_ptr;
384 }
385 if (gif_ptr->img_ptr_arr_ptr != NULL) {
386 int32_t size_img_arr = gif_ptr->img_ptr_arr_ptr->GetSize(); 382 int32_t size_img_arr = gif_ptr->img_ptr_arr_ptr->GetSize();
387 for (int32_t i = 0; i < size_img_arr; i++) { 383 for (int32_t i = 0; i < size_img_arr; i++) {
388 GifImage* p = gif_ptr->img_ptr_arr_ptr->GetAt(i); 384 GifImage* p = gif_ptr->img_ptr_arr_ptr->GetAt(i);
389 if (p->image_info_ptr != NULL) { 385 FX_Free(p->image_info_ptr);
390 FX_Free(p->image_info_ptr); 386 FX_Free(p->image_gce_ptr);
391 } 387 FX_Free(p->image_row_buf);
392 if (p->image_gce_ptr != NULL) { 388 if (p->local_pal_ptr && p->local_pal_ptr != gif_ptr->global_pal_ptr) {
393 FX_Free(p->image_gce_ptr);
394 }
395 if (p->image_row_buf != NULL) {
396 FX_Free(p->image_row_buf);
397 }
398 if (p->local_pal_ptr != NULL &&
399 p->local_pal_ptr != gif_ptr->global_pal_ptr) {
400 FX_Free(p->local_pal_ptr); 389 FX_Free(p->local_pal_ptr);
401 } 390 }
402 FX_Free(p); 391 FX_Free(p);
403 } 392 }
404 gif_ptr->img_ptr_arr_ptr->RemoveAll(); 393 gif_ptr->img_ptr_arr_ptr->RemoveAll();
405 delete gif_ptr->img_ptr_arr_ptr; 394 delete gif_ptr->img_ptr_arr_ptr;
406 } 395 }
407 #ifdef GIF_SUPPORT_APPLICATION_EXTENSION 396 #ifdef GIF_SUPPORT_APPLICATION_EXTENSION
408 if (gif_ptr->app_data != NULL) { 397 FX_Free(gif_ptr->app_data);
409 FX_Free(gif_ptr->app_data);
410 }
411 #endif 398 #endif
412 #ifdef GIF_SUPPORT_COMMENT_EXTENSION 399 #ifdef GIF_SUPPORT_COMMENT_EXTENSION
413 if (gif_ptr->cmt_data_ptr != NULL) { 400 delete gif_ptr->cmt_data_ptr;
414 delete gif_ptr->cmt_data_ptr;
415 }
416 #endif 401 #endif
417 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION 402 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION
418 if (gif_ptr->gce_ptr != NULL) { 403 FX_Free(gif_ptr->gce_ptr);
419 FX_Free(gif_ptr->gce_ptr);
420 }
421 #endif 404 #endif
422 #ifdef GIF_SUPPORT_PLAIN_TEXT_EXTENSION 405 #ifdef GIF_SUPPORT_PLAIN_TEXT_EXTENSION
423 if (gif_ptr->pt_ptr_arr_ptr != NULL) { 406 if (gif_ptr->pt_ptr_arr_ptr) {
424 int32_t size_pt_arr = gif_ptr->pt_ptr_arr_ptr->GetSize(); 407 int32_t size_pt_arr = gif_ptr->pt_ptr_arr_ptr->GetSize();
425 for (int32_t i = 0; i < size_pt_arr; i++) { 408 for (int32_t i = 0; i < size_pt_arr; i++) {
426 GifPlainText* p = gif_ptr->pt_ptr_arr_ptr->GetAt(i); 409 GifPlainText* p = gif_ptr->pt_ptr_arr_ptr->GetAt(i);
427 if (p->gce_ptr != NULL) { 410 FX_Free(p->gce_ptr);
428 FX_Free(p->gce_ptr); 411 FX_Free(p->pte_ptr);
429 } 412 delete p->string_ptr;
430 if (p->pte_ptr != NULL) {
431 FX_Free(p->pte_ptr);
432 }
433 if (p->string_ptr != NULL) {
434 delete p->string_ptr;
435 }
436 } 413 }
437 gif_ptr->pt_ptr_arr_ptr->RemoveAll(); 414 gif_ptr->pt_ptr_arr_ptr->RemoveAll();
438 delete gif_ptr->pt_ptr_arr_ptr; 415 delete gif_ptr->pt_ptr_arr_ptr;
439 } 416 }
440 #endif 417 #endif
441 FX_Free(gif_ptr); 418 FX_Free(gif_ptr);
442 } 419 }
443 gif_compress_struct_p _gif_create_compress() { 420 gif_compress_struct_p _gif_create_compress() {
444 gif_compress_struct_p gif_ptr = 421 gif_compress_struct_p gif_ptr =
445 (gif_compress_struct*)FX_Alloc(uint8_t, sizeof(gif_compress_struct)); 422 (gif_compress_struct*)FX_Alloc(uint8_t, sizeof(gif_compress_struct));
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 gif_ptr->pte_ptr->block_size = 12; 481 gif_ptr->pte_ptr->block_size = 12;
505 #endif 482 #endif
506 return gif_ptr; 483 return gif_ptr;
507 } 484 }
508 void _gif_destroy_compress(gif_compress_struct_pp gif_ptr_ptr) { 485 void _gif_destroy_compress(gif_compress_struct_pp gif_ptr_ptr) {
509 if (gif_ptr_ptr == NULL || *gif_ptr_ptr == NULL) { 486 if (gif_ptr_ptr == NULL || *gif_ptr_ptr == NULL) {
510 return; 487 return;
511 } 488 }
512 gif_compress_struct_p gif_ptr = *gif_ptr_ptr; 489 gif_compress_struct_p gif_ptr = *gif_ptr_ptr;
513 *gif_ptr_ptr = NULL; 490 *gif_ptr_ptr = NULL;
514 if (gif_ptr->header_ptr != NULL) { 491 FX_Free(gif_ptr->header_ptr);
515 FX_Free(gif_ptr->header_ptr); 492 FX_Free(gif_ptr->lsd_ptr);
516 } 493 FX_Free(gif_ptr->global_pal);
517 if (gif_ptr->lsd_ptr != NULL) { 494 FX_Free(gif_ptr->image_info_ptr);
518 FX_Free(gif_ptr->lsd_ptr); 495 FX_Free(gif_ptr->local_pal);
519 } 496 delete gif_ptr->img_encoder_ptr;
520 if (gif_ptr->global_pal != NULL) {
521 FX_Free(gif_ptr->global_pal);
522 }
523 if (gif_ptr->image_info_ptr != NULL) {
524 FX_Free(gif_ptr->image_info_ptr);
525 }
526 if (gif_ptr->local_pal != NULL) {
527 FX_Free(gif_ptr->local_pal);
528 }
529 if (gif_ptr->img_encoder_ptr != NULL) {
530 delete gif_ptr->img_encoder_ptr;
531 }
532 #ifdef GIF_SUPPORT_APPLICATION_EXTENSION 497 #ifdef GIF_SUPPORT_APPLICATION_EXTENSION
533 if (gif_ptr->app_data != NULL) { 498 FX_Free(gif_ptr->app_data);
534 FX_Free(gif_ptr->app_data);
535 }
536 #endif 499 #endif
537 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION 500 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION
538 if (gif_ptr->gce_ptr != NULL) { 501 FX_Free(gif_ptr->gce_ptr);
539 FX_Free(gif_ptr->gce_ptr);
540 }
541 #endif 502 #endif
542 #ifdef GIF_SUPPORT_COMMENT_EXTENSION 503 #ifdef GIF_SUPPORT_COMMENT_EXTENSION
543 if (gif_ptr->cmt_data_ptr != NULL) { 504 FX_Free(gif_ptr->cmt_data_ptr);
544 FX_Free(gif_ptr->cmt_data_ptr);
545 }
546 #endif 505 #endif
547 #ifdef GIF_SUPPORT_PLAIN_TEXT_EXTENSION 506 #ifdef GIF_SUPPORT_PLAIN_TEXT_EXTENSION
548 if (gif_ptr->pte_ptr != NULL) { 507 FX_Free(gif_ptr->pte_ptr);
549 FX_Free(gif_ptr->pte_ptr);
550 }
551 #endif 508 #endif
552 FX_Free(gif_ptr); 509 FX_Free(gif_ptr);
553 } 510 }
554 void _gif_error(gif_decompress_struct_p gif_ptr, const FX_CHAR* err_msg) { 511 void _gif_error(gif_decompress_struct_p gif_ptr, const FX_CHAR* err_msg) {
555 if (gif_ptr != NULL && gif_ptr->_gif_error_fn != NULL) { 512 if (gif_ptr && gif_ptr->_gif_error_fn) {
556 gif_ptr->_gif_error_fn(gif_ptr, err_msg); 513 gif_ptr->_gif_error_fn(gif_ptr, err_msg);
557 } 514 }
558 } 515 }
559 void _gif_warn(gif_decompress_struct_p gif_ptr, const FX_CHAR* err_msg) {} 516 void _gif_warn(gif_decompress_struct_p gif_ptr, const FX_CHAR* err_msg) {}
560 int32_t _gif_read_header(gif_decompress_struct_p gif_ptr) { 517 int32_t _gif_read_header(gif_decompress_struct_p gif_ptr) {
561 if (gif_ptr == NULL) { 518 if (gif_ptr == NULL) {
562 return 0; 519 return 0;
563 } 520 }
564 FX_DWORD skip_size_org = gif_ptr->skip_size; 521 FX_DWORD skip_size_org = gif_ptr->skip_size;
565 ASSERT(sizeof(GifHeader) == 6); 522 ASSERT(sizeof(GifHeader) == 6);
(...skipping 18 matching lines...) Expand all
584 ASSERT(sizeof(GifPalette) == 3); 541 ASSERT(sizeof(GifPalette) == 3);
585 int32_t global_pal_size = gif_ptr->global_pal_num * 3; 542 int32_t global_pal_size = gif_ptr->global_pal_num * 3;
586 uint8_t* global_pal_ptr = NULL; 543 uint8_t* global_pal_ptr = NULL;
587 if (_gif_read_data(gif_ptr, &global_pal_ptr, global_pal_size) == NULL) { 544 if (_gif_read_data(gif_ptr, &global_pal_ptr, global_pal_size) == NULL) {
588 gif_ptr->skip_size = skip_size_org; 545 gif_ptr->skip_size = skip_size_org;
589 return 2; 546 return 2;
590 } 547 }
591 gif_ptr->global_sort_flag = ((GifGF*)&gif_lsd_ptr->global_flag)->sort_flag; 548 gif_ptr->global_sort_flag = ((GifGF*)&gif_lsd_ptr->global_flag)->sort_flag;
592 gif_ptr->global_color_resolution = 549 gif_ptr->global_color_resolution =
593 ((GifGF*)&gif_lsd_ptr->global_flag)->color_resolution; 550 ((GifGF*)&gif_lsd_ptr->global_flag)->color_resolution;
594 if (gif_ptr->global_pal_ptr != NULL) { 551 FX_Free(gif_ptr->global_pal_ptr);
595 FX_Free(gif_ptr->global_pal_ptr);
596 }
597 gif_ptr->global_pal_ptr = NULL;
598 gif_ptr->global_pal_ptr = (GifPalette*)FX_Alloc(uint8_t, global_pal_size); 552 gif_ptr->global_pal_ptr = (GifPalette*)FX_Alloc(uint8_t, global_pal_size);
599 GIF_PTR_NOT_NULL(gif_ptr->global_pal_ptr, gif_ptr);
600 FXSYS_memcpy(gif_ptr->global_pal_ptr, global_pal_ptr, global_pal_size); 553 FXSYS_memcpy(gif_ptr->global_pal_ptr, global_pal_ptr, global_pal_size);
601 } 554 }
602 gif_ptr->width = (int)_GetWord_LSBFirst((uint8_t*)&gif_lsd_ptr->width); 555 gif_ptr->width = (int)_GetWord_LSBFirst((uint8_t*)&gif_lsd_ptr->width);
603 gif_ptr->height = (int)_GetWord_LSBFirst((uint8_t*)&gif_lsd_ptr->height); 556 gif_ptr->height = (int)_GetWord_LSBFirst((uint8_t*)&gif_lsd_ptr->height);
604 gif_ptr->bc_index = gif_lsd_ptr->bc_index; 557 gif_ptr->bc_index = gif_lsd_ptr->bc_index;
605 gif_ptr->pixel_aspect = gif_lsd_ptr->pixel_aspect; 558 gif_ptr->pixel_aspect = gif_lsd_ptr->pixel_aspect;
606 return 1; 559 return 1;
607 } 560 }
608 int32_t _gif_get_frame(gif_decompress_struct_p gif_ptr) { 561 int32_t _gif_get_frame(gif_decompress_struct_p gif_ptr) {
609 if (gif_ptr == NULL) { 562 if (gif_ptr == NULL) {
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
713 continue; 666 continue;
714 } 667 }
715 } 668 }
716 } 669 }
717 return 1; 670 return 1;
718 } 671 }
719 void _gif_takeover_gce_ptr(gif_decompress_struct_p gif_ptr, 672 void _gif_takeover_gce_ptr(gif_decompress_struct_p gif_ptr,
720 GifGCE** gce_ptr_ptr) { 673 GifGCE** gce_ptr_ptr) {
721 *gce_ptr_ptr = NULL; 674 *gce_ptr_ptr = NULL;
722 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION 675 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION
723 if (gif_ptr->gce_ptr != NULL && gce_ptr_ptr != NULL) { 676 if (gif_ptr->gce_ptr && gce_ptr_ptr) {
724 *gce_ptr_ptr = gif_ptr->gce_ptr; 677 *gce_ptr_ptr = gif_ptr->gce_ptr;
725 gif_ptr->gce_ptr = NULL; 678 gif_ptr->gce_ptr = NULL;
726 } 679 }
727 #endif 680 #endif
728 } 681 }
729 int32_t _gif_decode_extension(gif_decompress_struct_p gif_ptr) { 682 int32_t _gif_decode_extension(gif_decompress_struct_p gif_ptr) {
730 uint8_t* data_size_ptr = NULL; 683 uint8_t* data_size_ptr = NULL;
731 uint8_t* data_ptr = NULL; 684 uint8_t* data_ptr = NULL;
732 FX_DWORD skip_size_org = gif_ptr->skip_size; 685 FX_DWORD skip_size_org = gif_ptr->skip_size;
733 switch (gif_ptr->decode_status) { 686 switch (gif_ptr->decode_status) {
(...skipping 15 matching lines...) Expand all
749 _gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) { 702 _gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) {
750 gif_ptr->skip_size = skip_size_org; 703 gif_ptr->skip_size = skip_size_org;
751 return 2; 704 return 2;
752 } 705 }
753 gif_ae_data_str += CFX_ByteString((const uint8_t*)data_ptr, data_size); 706 gif_ae_data_str += CFX_ByteString((const uint8_t*)data_ptr, data_size);
754 } 707 }
755 FXSYS_memcpy(gif_ptr->app_identify, gif_ae_ptr->app_identify, 8); 708 FXSYS_memcpy(gif_ptr->app_identify, gif_ae_ptr->app_identify, 8);
756 FXSYS_memcpy(gif_ptr->app_authentication, gif_ae_ptr->app_authentication, 709 FXSYS_memcpy(gif_ptr->app_authentication, gif_ae_ptr->app_authentication,
757 3); 710 3);
758 gif_ptr->app_data_size = gif_ae_data_str.GetLength(); 711 gif_ptr->app_data_size = gif_ae_data_str.GetLength();
759 if (gif_ptr->app_data != NULL) { 712 FX_Free(gif_ptr->app_data);
760 FX_Free(gif_ptr->app_data);
761 gif_ptr->app_data = NULL;
762 }
763 gif_ptr->app_data = FX_Alloc(uint8_t, gif_ptr->app_data_size); 713 gif_ptr->app_data = FX_Alloc(uint8_t, gif_ptr->app_data_size);
764 GIF_PTR_NOT_NULL(gif_ptr->app_data, gif_ptr);
765 FXSYS_memcpy(gif_ptr->app_data, const uint8_t*(gif_ae_data_str), 714 FXSYS_memcpy(gif_ptr->app_data, const uint8_t*(gif_ae_data_str),
766 gif_ptr->app_data_size); 715 gif_ptr->app_data_size);
767 } break; 716 } break;
768 #endif 717 #endif
769 #ifdef GIF_SUPPORT_COMMENT_EXTENSION 718 #ifdef GIF_SUPPORT_COMMENT_EXTENSION
770 case GIF_D_STATUS_EXT_CE: { 719 case GIF_D_STATUS_EXT_CE: {
771 if (_gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) { 720 if (_gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) {
772 gif_ptr->skip_size = skip_size_org; 721 gif_ptr->skip_size = skip_size_org;
773 return 2; 722 return 2;
774 } 723 }
(...skipping 11 matching lines...) Expand all
786 } break; 735 } break;
787 #endif 736 #endif
788 #ifdef GIF_SUPPORT_PLAIN_TEXT_EXTENSION 737 #ifdef GIF_SUPPORT_PLAIN_TEXT_EXTENSION
789 case GIF_D_STATUS_EXT_PTE: { 738 case GIF_D_STATUS_EXT_PTE: {
790 ASSERT(sizeof(GifPTE) == 13); 739 ASSERT(sizeof(GifPTE) == 13);
791 GifPTE* gif_pte_ptr = NULL; 740 GifPTE* gif_pte_ptr = NULL;
792 if (_gif_read_data(gif_ptr, (uint8_t**)&gif_pte_ptr, 13) == NULL) { 741 if (_gif_read_data(gif_ptr, (uint8_t**)&gif_pte_ptr, 13) == NULL) {
793 return 2; 742 return 2;
794 } 743 }
795 GifPlainText* gif_pt_ptr = FX_Alloc(GifPlainText, 1); 744 GifPlainText* gif_pt_ptr = FX_Alloc(GifPlainText, 1);
796 GIF_PTR_NOT_NULL(gif_pt_ptr, gif_ptr);
797 FXSYS_memset(gif_pt_ptr, 0, sizeof(GifPlainText)); 745 FXSYS_memset(gif_pt_ptr, 0, sizeof(GifPlainText));
798 _gif_takeover_gce_ptr(gif_ptr, &gif_pt_ptr->gce_ptr); 746 _gif_takeover_gce_ptr(gif_ptr, &gif_pt_ptr->gce_ptr);
799 gif_pt_ptr->pte_ptr = (GifPTE*)FX_Alloc(uint8_t, sizeof(GifPTE)); 747 gif_pt_ptr->pte_ptr = (GifPTE*)FX_Alloc(uint8_t, sizeof(GifPTE));
800 GIF_PTR_NOT_NULL(gif_pt_ptr->pte_ptr, gif_ptr);
801 gif_pt_ptr->string_ptr = new CFX_ByteString; 748 gif_pt_ptr->string_ptr = new CFX_ByteString;
802 GIF_PTR_NOT_NULL(gif_pt_ptr->string_ptr, gif_ptr);
803 gif_pt_ptr->pte_ptr->block_size = gif_pte_ptr->block_size; 749 gif_pt_ptr->pte_ptr->block_size = gif_pte_ptr->block_size;
804 gif_pt_ptr->pte_ptr->grid_left = 750 gif_pt_ptr->pte_ptr->grid_left =
805 _GetWord_LSBFirst((uint8_t*)&gif_pte_ptr->grid_left); 751 _GetWord_LSBFirst((uint8_t*)&gif_pte_ptr->grid_left);
806 gif_pt_ptr->pte_ptr->grid_top = 752 gif_pt_ptr->pte_ptr->grid_top =
807 _GetWord_LSBFirst((uint8_t*)&gif_pte_ptr->grid_top); 753 _GetWord_LSBFirst((uint8_t*)&gif_pte_ptr->grid_top);
808 gif_pt_ptr->pte_ptr->grid_width = 754 gif_pt_ptr->pte_ptr->grid_width =
809 _GetWord_LSBFirst((uint8_t*)&gif_pte_ptr->grid_width); 755 _GetWord_LSBFirst((uint8_t*)&gif_pte_ptr->grid_width);
810 gif_pt_ptr->pte_ptr->grid_height = 756 gif_pt_ptr->pte_ptr->grid_height =
811 _GetWord_LSBFirst((uint8_t*)&gif_pte_ptr->grid_height); 757 _GetWord_LSBFirst((uint8_t*)&gif_pte_ptr->grid_height);
812 gif_pt_ptr->pte_ptr->char_width = gif_pte_ptr->char_width; 758 gif_pt_ptr->pte_ptr->char_width = gif_pte_ptr->char_width;
813 gif_pt_ptr->pte_ptr->char_height = gif_pte_ptr->char_height; 759 gif_pt_ptr->pte_ptr->char_height = gif_pte_ptr->char_height;
814 gif_pt_ptr->pte_ptr->fc_index = gif_pte_ptr->fc_index; 760 gif_pt_ptr->pte_ptr->fc_index = gif_pte_ptr->fc_index;
815 gif_pt_ptr->pte_ptr->bc_index = gif_pte_ptr->bc_index; 761 gif_pt_ptr->pte_ptr->bc_index = gif_pte_ptr->bc_index;
816 if (_gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) { 762 if (_gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) {
817 gif_ptr->skip_size = skip_size_org; 763 gif_ptr->skip_size = skip_size_org;
818 if (gif_pt_ptr != NULL) { 764 if (gif_pt_ptr) {
819 if (gif_pt_ptr->gce_ptr != NULL) { 765 FX_Free(gif_pt_ptr->gce_ptr);
820 FX_Free(gif_pt_ptr->gce_ptr); 766 FX_Free(gif_pt_ptr->pte_ptr);
821 } 767 delete gif_pt_ptr->string_ptr;
822 if (gif_pt_ptr->pte_ptr != NULL) {
823 FX_Free(gif_pt_ptr->pte_ptr);
824 }
825 if (gif_pt_ptr->string_ptr != NULL) {
826 delete gif_pt_ptr->string_ptr;
827 }
828 FX_Free(gif_pt_ptr); 768 FX_Free(gif_pt_ptr);
829 } 769 }
830 return 2; 770 return 2;
831 } 771 }
832 while (*data_size_ptr != GIF_BLOCK_TERMINAL) { 772 while (*data_size_ptr != GIF_BLOCK_TERMINAL) {
833 uint8_t data_size = *data_size_ptr; 773 uint8_t data_size = *data_size_ptr;
834 if (_gif_read_data(gif_ptr, &data_ptr, *data_size_ptr) == NULL || 774 if (_gif_read_data(gif_ptr, &data_ptr, *data_size_ptr) == NULL ||
835 _gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) { 775 _gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) {
836 gif_ptr->skip_size = skip_size_org; 776 gif_ptr->skip_size = skip_size_org;
837 if (gif_pt_ptr != NULL) { 777 if (gif_pt_ptr) {
838 if (gif_pt_ptr->gce_ptr != NULL) { 778 FX_Free(gif_pt_ptr->gce_ptr);
839 FX_Free(gif_pt_ptr->gce_ptr); 779 FX_Free(gif_pt_ptr->pte_ptr);
840 } 780 delete gif_pt_ptr->string_ptr;
841 if (gif_pt_ptr->pte_ptr != NULL) {
842 FX_Free(gif_pt_ptr->pte_ptr);
843 }
844 if (gif_pt_ptr->string_ptr != NULL) {
845 delete gif_pt_ptr->string_ptr;
846 }
847 FX_Free(gif_pt_ptr); 781 FX_Free(gif_pt_ptr);
848 } 782 }
849 return 2; 783 return 2;
850 } 784 }
851 *(gif_pt_ptr->string_ptr) += 785 *(gif_pt_ptr->string_ptr) +=
852 CFX_ByteString((const FX_CHAR*)data_ptr, data_size); 786 CFX_ByteString((const FX_CHAR*)data_ptr, data_size);
853 } 787 }
854 gif_ptr->pt_ptr_arr_ptr->Add(gif_pt_ptr); 788 gif_ptr->pt_ptr_arr_ptr->Add(gif_pt_ptr);
855 } break; 789 } break;
856 #endif 790 #endif
857 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION 791 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION
858 case GIF_D_STATUS_EXT_GCE: { 792 case GIF_D_STATUS_EXT_GCE: {
859 ASSERT(sizeof(GifGCE) == 5); 793 ASSERT(sizeof(GifGCE) == 5);
860 GifGCE* gif_gce_ptr = NULL; 794 GifGCE* gif_gce_ptr = NULL;
861 if (_gif_read_data(gif_ptr, (uint8_t**)&gif_gce_ptr, 6) == NULL) { 795 if (_gif_read_data(gif_ptr, (uint8_t**)&gif_gce_ptr, 6) == NULL) {
862 return 2; 796 return 2;
863 } 797 }
864 if (gif_ptr->gce_ptr == NULL) { 798 if (gif_ptr->gce_ptr == NULL) {
865 gif_ptr->gce_ptr = (GifGCE*)FX_Alloc(uint8_t, sizeof(GifGCE)); 799 gif_ptr->gce_ptr = (GifGCE*)FX_Alloc(uint8_t, sizeof(GifGCE));
866 GIF_PTR_NOT_NULL(gif_ptr->gce_ptr, gif_ptr);
867 } 800 }
868 gif_ptr->gce_ptr->block_size = gif_gce_ptr->block_size; 801 gif_ptr->gce_ptr->block_size = gif_gce_ptr->block_size;
869 gif_ptr->gce_ptr->gce_flag = gif_gce_ptr->gce_flag; 802 gif_ptr->gce_ptr->gce_flag = gif_gce_ptr->gce_flag;
870 gif_ptr->gce_ptr->delay_time = 803 gif_ptr->gce_ptr->delay_time =
871 _GetWord_LSBFirst((uint8_t*)&gif_gce_ptr->delay_time); 804 _GetWord_LSBFirst((uint8_t*)&gif_gce_ptr->delay_time);
872 gif_ptr->gce_ptr->trans_index = gif_gce_ptr->trans_index; 805 gif_ptr->gce_ptr->trans_index = gif_gce_ptr->trans_index;
873 } break; 806 } break;
874 #endif 807 #endif
875 default: { 808 default: {
876 #ifndef GIF_SUPPORT_PLAIN_TEXT_EXTENSION 809 #ifndef GIF_SUPPORT_PLAIN_TEXT_EXTENSION
810 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION
877 if (gif_ptr->decode_status == GIF_D_STATUS_EXT_PTE) { 811 if (gif_ptr->decode_status == GIF_D_STATUS_EXT_PTE) {
878 #ifdef GIF_SUPPORT_GRAPHIC_CONTROL_EXTENSION 812 FX_Free(gif_ptr->gce_ptr);
879 if (gif_ptr->gce_ptr != NULL) { 813 gif_ptr->gce_ptr = NULL;
880 FX_Free(gif_ptr->gce_ptr); 814 }
881 gif_ptr->gce_ptr = NULL;
882 }
883 #endif 815 #endif
884 }
885 #endif 816 #endif
886 if (_gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) { 817 if (_gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) {
887 return 2; 818 return 2;
888 } 819 }
889 while (*data_size_ptr != GIF_BLOCK_TERMINAL) { 820 while (*data_size_ptr != GIF_BLOCK_TERMINAL) {
890 if (_gif_read_data(gif_ptr, &data_ptr, *data_size_ptr) == NULL || 821 if (_gif_read_data(gif_ptr, &data_ptr, *data_size_ptr) == NULL ||
891 _gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) { 822 _gif_read_data(gif_ptr, &data_size_ptr, 1) == NULL) {
892 gif_ptr->skip_size = skip_size_org; 823 gif_ptr->skip_size = skip_size_org;
893 return 2; 824 return 2;
894 } 825 }
895 } 826 }
896 } 827 }
897 } 828 }
898 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_SIG); 829 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_SIG);
899 return 1; 830 return 1;
900 } 831 }
901 int32_t _gif_decode_image_info(gif_decompress_struct_p gif_ptr) { 832 int32_t _gif_decode_image_info(gif_decompress_struct_p gif_ptr) {
902 if (gif_ptr->width == 0 || gif_ptr->height == 0) { 833 if (gif_ptr->width == 0 || gif_ptr->height == 0) {
903 _gif_error(gif_ptr, "No Image Header Info"); 834 _gif_error(gif_ptr, "No Image Header Info");
904 return 0; 835 return 0;
905 } 836 }
906 FX_DWORD skip_size_org = gif_ptr->skip_size; 837 FX_DWORD skip_size_org = gif_ptr->skip_size;
907 ASSERT(sizeof(GifImageInfo) == 9); 838 ASSERT(sizeof(GifImageInfo) == 9);
908 GifImageInfo* gif_img_info_ptr = NULL; 839 GifImageInfo* gif_img_info_ptr = NULL;
909 if (_gif_read_data(gif_ptr, (uint8_t**)&gif_img_info_ptr, 9) == NULL) { 840 if (_gif_read_data(gif_ptr, (uint8_t**)&gif_img_info_ptr, 9) == NULL) {
910 return 2; 841 return 2;
911 } 842 }
912 GifImage* gif_image_ptr = (GifImage*)FX_Alloc(uint8_t, sizeof(GifImage)); 843 GifImage* gif_image_ptr = (GifImage*)FX_Alloc(uint8_t, sizeof(GifImage));
913 GIF_PTR_NOT_NULL(gif_image_ptr, gif_ptr);
914 FXSYS_memset(gif_image_ptr, 0, sizeof(GifImage)); 844 FXSYS_memset(gif_image_ptr, 0, sizeof(GifImage));
915 gif_image_ptr->image_info_ptr = 845 gif_image_ptr->image_info_ptr =
916 (GifImageInfo*)FX_Alloc(uint8_t, sizeof(GifImageInfo)); 846 (GifImageInfo*)FX_Alloc(uint8_t, sizeof(GifImageInfo));
917 GIF_PTR_NOT_NULL(gif_image_ptr->image_info_ptr, gif_ptr);
918 gif_image_ptr->image_info_ptr->left = 847 gif_image_ptr->image_info_ptr->left =
919 _GetWord_LSBFirst((uint8_t*)&gif_img_info_ptr->left); 848 _GetWord_LSBFirst((uint8_t*)&gif_img_info_ptr->left);
920 gif_image_ptr->image_info_ptr->top = 849 gif_image_ptr->image_info_ptr->top =
921 _GetWord_LSBFirst((uint8_t*)&gif_img_info_ptr->top); 850 _GetWord_LSBFirst((uint8_t*)&gif_img_info_ptr->top);
922 gif_image_ptr->image_info_ptr->width = 851 gif_image_ptr->image_info_ptr->width =
923 _GetWord_LSBFirst((uint8_t*)&gif_img_info_ptr->width); 852 _GetWord_LSBFirst((uint8_t*)&gif_img_info_ptr->width);
924 gif_image_ptr->image_info_ptr->height = 853 gif_image_ptr->image_info_ptr->height =
925 _GetWord_LSBFirst((uint8_t*)&gif_img_info_ptr->height); 854 _GetWord_LSBFirst((uint8_t*)&gif_img_info_ptr->height);
926 gif_image_ptr->image_info_ptr->local_flag = gif_img_info_ptr->local_flag; 855 gif_image_ptr->image_info_ptr->local_flag = gif_img_info_ptr->local_flag;
927 if (gif_image_ptr->image_info_ptr->left + 856 if (gif_image_ptr->image_info_ptr->left +
928 gif_image_ptr->image_info_ptr->width > 857 gif_image_ptr->image_info_ptr->width >
929 gif_ptr->width || 858 gif_ptr->width ||
930 gif_image_ptr->image_info_ptr->top + 859 gif_image_ptr->image_info_ptr->top +
931 gif_image_ptr->image_info_ptr->height > 860 gif_image_ptr->image_info_ptr->height >
932 gif_ptr->height) { 861 gif_ptr->height) {
933 if (gif_image_ptr->image_info_ptr != NULL) { 862 FX_Free(gif_image_ptr->image_info_ptr);
934 FX_Free(gif_image_ptr->image_info_ptr); 863 FX_Free(gif_image_ptr->image_row_buf);
935 }
936 if (gif_image_ptr->image_row_buf != NULL) {
937 FX_Free(gif_image_ptr->image_row_buf);
938 }
939 FX_Free(gif_image_ptr); 864 FX_Free(gif_image_ptr);
940 _gif_error(gif_ptr, "Image Data Out Of LSD, The File May Be Corrupt"); 865 _gif_error(gif_ptr, "Image Data Out Of LSD, The File May Be Corrupt");
941 return 0; 866 return 0;
942 } 867 }
943 GifLF* gif_img_info_lf_ptr = (GifLF*)&gif_img_info_ptr->local_flag; 868 GifLF* gif_img_info_lf_ptr = (GifLF*)&gif_img_info_ptr->local_flag;
944 if (gif_img_info_lf_ptr->local_pal) { 869 if (gif_img_info_lf_ptr->local_pal) {
945 ASSERT(sizeof(GifPalette) == 3); 870 ASSERT(sizeof(GifPalette) == 3);
946 int32_t loc_pal_size = (2 << gif_img_info_lf_ptr->pal_bits) * 3; 871 int32_t loc_pal_size = (2 << gif_img_info_lf_ptr->pal_bits) * 3;
947 uint8_t* loc_pal_ptr = NULL; 872 uint8_t* loc_pal_ptr = NULL;
948 if (_gif_read_data(gif_ptr, &loc_pal_ptr, loc_pal_size) == NULL) { 873 if (_gif_read_data(gif_ptr, &loc_pal_ptr, loc_pal_size) == NULL) {
949 gif_ptr->skip_size = skip_size_org; 874 gif_ptr->skip_size = skip_size_org;
950 if (gif_image_ptr->image_info_ptr != NULL) { 875 FX_Free(gif_image_ptr->image_info_ptr);
951 FX_Free(gif_image_ptr->image_info_ptr); 876 FX_Free(gif_image_ptr->image_row_buf);
952 }
953 if (gif_image_ptr->image_row_buf != NULL) {
954 FX_Free(gif_image_ptr->image_row_buf);
955 }
956 FX_Free(gif_image_ptr); 877 FX_Free(gif_image_ptr);
957 return 2; 878 return 2;
958 } 879 }
959 gif_image_ptr->local_pal_ptr = 880 gif_image_ptr->local_pal_ptr =
960 (GifPalette*)gif_ptr->_gif_ask_buf_for_pal_fn(gif_ptr, loc_pal_size); 881 (GifPalette*)gif_ptr->_gif_ask_buf_for_pal_fn(gif_ptr, loc_pal_size);
961 if (gif_image_ptr->local_pal_ptr != NULL) { 882 if (gif_image_ptr->local_pal_ptr) {
962 FXSYS_memcpy((uint8_t*)gif_image_ptr->local_pal_ptr, loc_pal_ptr, 883 FXSYS_memcpy((uint8_t*)gif_image_ptr->local_pal_ptr, loc_pal_ptr,
963 loc_pal_size); 884 loc_pal_size);
964 } 885 }
965 } 886 }
966 uint8_t* code_size_ptr = NULL; 887 uint8_t* code_size_ptr = NULL;
967 if (_gif_read_data(gif_ptr, &code_size_ptr, 1) == NULL) { 888 if (_gif_read_data(gif_ptr, &code_size_ptr, 1) == NULL) {
968 gif_ptr->skip_size = skip_size_org; 889 gif_ptr->skip_size = skip_size_org;
969 if (gif_image_ptr->image_info_ptr != NULL) { 890 FX_Free(gif_image_ptr->image_info_ptr);
970 FX_Free(gif_image_ptr->image_info_ptr); 891 FX_Free(gif_image_ptr->local_pal_ptr);
971 } 892 FX_Free(gif_image_ptr->image_row_buf);
972 if (gif_image_ptr->local_pal_ptr != NULL) {
973 FX_Free(gif_image_ptr->local_pal_ptr);
974 }
975 if (gif_image_ptr->image_row_buf != NULL) {
976 FX_Free(gif_image_ptr->image_row_buf);
977 }
978 FX_Free(gif_image_ptr); 893 FX_Free(gif_image_ptr);
979 return 2; 894 return 2;
980 } 895 }
981 gif_image_ptr->image_code_size = *code_size_ptr; 896 gif_image_ptr->image_code_size = *code_size_ptr;
982 gif_ptr->_gif_record_current_position_fn(gif_ptr, 897 gif_ptr->_gif_record_current_position_fn(gif_ptr,
983 &gif_image_ptr->image_data_pos); 898 &gif_image_ptr->image_data_pos);
984 gif_image_ptr->image_data_pos += gif_ptr->skip_size; 899 gif_image_ptr->image_data_pos += gif_ptr->skip_size;
985 _gif_takeover_gce_ptr(gif_ptr, &gif_image_ptr->image_gce_ptr); 900 _gif_takeover_gce_ptr(gif_ptr, &gif_image_ptr->image_gce_ptr);
986 gif_ptr->img_ptr_arr_ptr->Add(gif_image_ptr); 901 gif_ptr->img_ptr_arr_ptr->Add(gif_image_ptr);
987 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_IMG_DATA); 902 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_IMG_DATA);
988 return 1; 903 return 1;
989 } 904 }
990 int32_t _gif_load_frame(gif_decompress_struct_p gif_ptr, int32_t frame_num) { 905 int32_t _gif_load_frame(gif_decompress_struct_p gif_ptr, int32_t frame_num) {
991 if (gif_ptr == NULL || frame_num < 0 || 906 if (gif_ptr == NULL || frame_num < 0 ||
992 frame_num >= gif_ptr->img_ptr_arr_ptr->GetSize()) { 907 frame_num >= gif_ptr->img_ptr_arr_ptr->GetSize()) {
993 return 0; 908 return 0;
994 } 909 }
995 uint8_t* data_size_ptr = NULL; 910 uint8_t* data_size_ptr = NULL;
996 uint8_t* data_ptr = NULL; 911 uint8_t* data_ptr = NULL;
997 FX_DWORD skip_size_org = gif_ptr->skip_size; 912 FX_DWORD skip_size_org = gif_ptr->skip_size;
998 GifImage* gif_image_ptr = gif_ptr->img_ptr_arr_ptr->GetAt(frame_num); 913 GifImage* gif_image_ptr = gif_ptr->img_ptr_arr_ptr->GetAt(frame_num);
999 FX_DWORD gif_img_row_bytes = gif_image_ptr->image_info_ptr->width; 914 FX_DWORD gif_img_row_bytes = gif_image_ptr->image_info_ptr->width;
1000 if (gif_ptr->decode_status == GIF_D_STATUS_TAIL) { 915 if (gif_ptr->decode_status == GIF_D_STATUS_TAIL) {
1001 if (gif_image_ptr->image_row_buf) { 916 if (gif_image_ptr->image_row_buf) {
1002 FX_Free(gif_image_ptr->image_row_buf); 917 FX_Free(gif_image_ptr->image_row_buf);
1003 gif_image_ptr->image_row_buf = NULL; 918 gif_image_ptr->image_row_buf = NULL;
1004 } 919 }
1005 gif_image_ptr->image_row_buf = FX_Alloc(uint8_t, gif_img_row_bytes); 920 gif_image_ptr->image_row_buf = FX_Alloc(uint8_t, gif_img_row_bytes);
1006 GIF_PTR_NOT_NULL(gif_image_ptr->image_row_buf, gif_ptr);
1007 GifGCE* gif_img_gce_ptr = gif_image_ptr->image_gce_ptr; 921 GifGCE* gif_img_gce_ptr = gif_image_ptr->image_gce_ptr;
1008 int32_t loc_pal_num = 922 int32_t loc_pal_num =
1009 ((GifLF*)&gif_image_ptr->image_info_ptr->local_flag)->local_pal 923 ((GifLF*)&gif_image_ptr->image_info_ptr->local_flag)->local_pal
1010 ? (2 << ((GifLF*)&gif_image_ptr->image_info_ptr->local_flag) 924 ? (2 << ((GifLF*)&gif_image_ptr->image_info_ptr->local_flag)
1011 ->pal_bits) 925 ->pal_bits)
1012 : 0; 926 : 0;
1013 gif_ptr->avail_in = 0; 927 gif_ptr->avail_in = 0;
1014 if (gif_img_gce_ptr == NULL) { 928 if (gif_img_gce_ptr == NULL) {
1015 FX_BOOL bRes = gif_ptr->_gif_get_record_position_fn( 929 FX_BOOL bRes = gif_ptr->_gif_get_record_position_fn(
1016 gif_ptr, gif_image_ptr->image_data_pos, 930 gif_ptr, gif_image_ptr->image_data_pos,
(...skipping 30 matching lines...) Expand all
1047 ->interlace); 961 ->interlace);
1048 if (!bRes) { 962 if (!bRes) {
1049 FX_Free(gif_image_ptr->image_row_buf); 963 FX_Free(gif_image_ptr->image_row_buf);
1050 gif_image_ptr->image_row_buf = NULL; 964 gif_image_ptr->image_row_buf = NULL;
1051 _gif_error(gif_ptr, "Error Read Record Position Data"); 965 _gif_error(gif_ptr, "Error Read Record Position Data");
1052 return 0; 966 return 0;
1053 } 967 }
1054 } 968 }
1055 if (gif_ptr->img_decoder_ptr == NULL) { 969 if (gif_ptr->img_decoder_ptr == NULL) {
1056 gif_ptr->img_decoder_ptr = new CGifLZWDecoder(gif_ptr->err_ptr); 970 gif_ptr->img_decoder_ptr = new CGifLZWDecoder(gif_ptr->err_ptr);
1057 GIF_PTR_NOT_NULL(gif_ptr->img_decoder_ptr, gif_ptr);
1058 } 971 }
1059 gif_ptr->img_decoder_ptr->InitTable(gif_image_ptr->image_code_size); 972 gif_ptr->img_decoder_ptr->InitTable(gif_image_ptr->image_code_size);
1060 gif_ptr->img_row_offset = 0; 973 gif_ptr->img_row_offset = 0;
1061 gif_ptr->img_row_avail_size = 0; 974 gif_ptr->img_row_avail_size = 0;
1062 gif_ptr->img_pass_num = 0; 975 gif_ptr->img_pass_num = 0;
1063 gif_image_ptr->image_row_num = 0; 976 gif_image_ptr->image_row_num = 0;
1064 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_IMG_DATA); 977 _gif_save_decoding_status(gif_ptr, GIF_D_STATUS_IMG_DATA);
1065 } 978 }
1066 CGifLZWDecoder* img_decoder_ptr = gif_ptr->img_decoder_ptr; 979 CGifLZWDecoder* img_decoder_ptr = gif_ptr->img_decoder_ptr;
1067 if (gif_ptr->decode_status == GIF_D_STATUS_IMG_DATA) { 980 if (gif_ptr->decode_status == GIF_D_STATUS_IMG_DATA) {
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
1172 } 1085 }
1173 void _gif_input_buffer(gif_decompress_struct_p gif_ptr, 1086 void _gif_input_buffer(gif_decompress_struct_p gif_ptr,
1174 uint8_t* src_buf, 1087 uint8_t* src_buf,
1175 FX_DWORD src_size) { 1088 FX_DWORD src_size) {
1176 gif_ptr->next_in = src_buf; 1089 gif_ptr->next_in = src_buf;
1177 gif_ptr->avail_in = src_size; 1090 gif_ptr->avail_in = src_size;
1178 gif_ptr->skip_size = 0; 1091 gif_ptr->skip_size = 0;
1179 } 1092 }
1180 FX_DWORD _gif_get_avail_input(gif_decompress_struct_p gif_ptr, 1093 FX_DWORD _gif_get_avail_input(gif_decompress_struct_p gif_ptr,
1181 uint8_t** avial_buf_ptr) { 1094 uint8_t** avial_buf_ptr) {
1182 if (avial_buf_ptr != NULL) { 1095 if (avial_buf_ptr) {
1183 *avial_buf_ptr = NULL; 1096 *avial_buf_ptr = NULL;
1184 if (gif_ptr->avail_in > 0) { 1097 if (gif_ptr->avail_in > 0) {
1185 *avial_buf_ptr = gif_ptr->next_in; 1098 *avial_buf_ptr = gif_ptr->next_in;
1186 } 1099 }
1187 } 1100 }
1188 return gif_ptr->avail_in; 1101 return gif_ptr->avail_in;
1189 } 1102 }
1190 int32_t _gif_get_frame_num(gif_decompress_struct_p gif_ptr) { 1103 int32_t _gif_get_frame_num(gif_decompress_struct_p gif_ptr) {
1191 return gif_ptr->img_ptr_arr_ptr->GetSize(); 1104 return gif_ptr->img_ptr_arr_ptr->GetSize();
1192 } 1105 }
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
1417 gif_ptr->cur_offset = cur_offset; 1330 gif_ptr->cur_offset = cur_offset;
1418 res = FALSE; 1331 res = FALSE;
1419 } 1332 }
1420 dst_len = gif_ptr->cur_offset; 1333 dst_len = gif_ptr->cur_offset;
1421 dst_buf[dst_len - 1] = GIF_SIG_TRAILER; 1334 dst_buf[dst_len - 1] = GIF_SIG_TRAILER;
1422 if (res) { 1335 if (res) {
1423 gif_ptr->frames++; 1336 gif_ptr->frames++;
1424 } 1337 }
1425 return res; 1338 return res;
1426 } 1339 }
OLDNEW
« no previous file with comments | « core/src/fxcodec/lgif/fx_gif.h ('k') | core/src/fxcrt/fx_basic_maps.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698