| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "core/fxcodec/lbmp/fx_bmp.h" | 7 #include "core/fxcodec/lbmp/fx_bmp.h" |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 case 24: | 206 case 24: |
| 207 bmp_ptr->out_row_bytes = BMP_WIDTHBYTES(bmp_ptr->width, 24); | 207 bmp_ptr->out_row_bytes = BMP_WIDTHBYTES(bmp_ptr->width, 24); |
| 208 bmp_ptr->components = 3; | 208 bmp_ptr->components = 3; |
| 209 break; | 209 break; |
| 210 case 32: | 210 case 32: |
| 211 bmp_ptr->out_row_bytes = bmp_ptr->src_row_bytes; | 211 bmp_ptr->out_row_bytes = bmp_ptr->src_row_bytes; |
| 212 bmp_ptr->components = 4; | 212 bmp_ptr->components = 4; |
| 213 break; | 213 break; |
| 214 } | 214 } |
| 215 FX_Free(bmp_ptr->out_row_buffer); | 215 FX_Free(bmp_ptr->out_row_buffer); |
| 216 |
| 217 if (bmp_ptr->out_row_bytes <= 0) { |
| 218 bmp_error(bmp_ptr, "The Bmp File Is Corrupt"); |
| 219 return 0; |
| 220 } |
| 221 |
| 216 bmp_ptr->out_row_buffer = FX_Alloc(uint8_t, bmp_ptr->out_row_bytes); | 222 bmp_ptr->out_row_buffer = FX_Alloc(uint8_t, bmp_ptr->out_row_bytes); |
| 217 FXSYS_memset(bmp_ptr->out_row_buffer, 0, bmp_ptr->out_row_bytes); | 223 FXSYS_memset(bmp_ptr->out_row_buffer, 0, bmp_ptr->out_row_bytes); |
| 218 bmp_save_decoding_status(bmp_ptr, BMP_D_STATUS_PAL); | 224 bmp_save_decoding_status(bmp_ptr, BMP_D_STATUS_PAL); |
| 219 } | 225 } |
| 220 if (bmp_ptr->decode_status == BMP_D_STATUS_PAL) { | 226 if (bmp_ptr->decode_status == BMP_D_STATUS_PAL) { |
| 221 skip_size_org = bmp_ptr->skip_size; | 227 skip_size_org = bmp_ptr->skip_size; |
| 222 if (bmp_ptr->compress_flag == BMP_BITFIELDS) { | 228 if (bmp_ptr->compress_flag == BMP_BITFIELDS) { |
| 223 if (bmp_ptr->bitCounts != 16 && bmp_ptr->bitCounts != 32) { | 229 if (bmp_ptr->bitCounts != 16 && bmp_ptr->bitCounts != 32) { |
| 224 bmp_error(bmp_ptr, "The Bmp File Is Corrupt"); | 230 bmp_error(bmp_ptr, "The Bmp File Is Corrupt"); |
| 225 return 0; | 231 return 0; |
| (...skipping 698 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 924 case BMP_RLE4: | 930 case BMP_RLE4: |
| 925 bmp_encode_rle4(bmp_ptr, dst_buf, dst_size); | 931 bmp_encode_rle4(bmp_ptr, dst_buf, dst_size); |
| 926 break; | 932 break; |
| 927 default: | 933 default: |
| 928 break; | 934 break; |
| 929 } | 935 } |
| 930 bmp_ptr->file_header.bfSize = dst_size; | 936 bmp_ptr->file_header.bfSize = dst_size; |
| 931 WriteFileHeader(&bmp_ptr->file_header, dst_buf); | 937 WriteFileHeader(&bmp_ptr->file_header, dst_buf); |
| 932 return TRUE; | 938 return TRUE; |
| 933 } | 939 } |
| OLD | NEW |