| 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 "JBig2_Segment.h" | 7 #include "JBig2_Segment.h" |
| 8 |
| 9 #include "../../../include/fxcrt/fx_memory.h" |
| 10 |
| 8 CJBig2_Segment::CJBig2_Segment() { | 11 CJBig2_Segment::CJBig2_Segment() { |
| 9 m_dwNumber = 0; | 12 m_dwNumber = 0; |
| 10 m_cFlags.c = 0; | 13 m_cFlags.c = 0; |
| 11 m_nReferred_to_segment_count = 0; | 14 m_nReferred_to_segment_count = 0; |
| 12 m_pReferred_to_segment_numbers = NULL; | 15 m_pReferred_to_segment_numbers = NULL; |
| 13 m_dwPage_association = 0; | 16 m_dwPage_association = 0; |
| 14 m_dwData_length = 0; | 17 m_dwData_length = 0; |
| 15 m_dwHeader_Length = 0; | 18 m_dwHeader_Length = 0; |
| 16 m_pData = NULL; | 19 m_pData = NULL; |
| 17 m_State = JBIG2_SEGMENT_HEADER_UNPARSED; | 20 m_State = JBIG2_SEGMENT_HEADER_UNPARSED; |
| 18 m_nResultType = JBIG2_VOID_POINTER; | 21 m_nResultType = JBIG2_VOID_POINTER; |
| 19 m_Result.vd = NULL; | 22 m_Result.vd = NULL; |
| 20 } | 23 } |
| 21 CJBig2_Segment::~CJBig2_Segment() { | 24 CJBig2_Segment::~CJBig2_Segment() { |
| 22 clean(); | 25 FX_Free(m_pReferred_to_segment_numbers); |
| 23 } | 26 |
| 24 void CJBig2_Segment::clean() { | 27 switch (m_nResultType) { |
| 25 if (m_pReferred_to_segment_numbers) { | 28 case JBIG2_IMAGE_POINTER: |
| 26 m_pModule->JBig2_Free(m_pReferred_to_segment_numbers); | 29 delete m_Result.im; |
| 27 } | 30 break; |
| 28 if (m_Result.vd) { | 31 case JBIG2_SYMBOL_DICT_POINTER: |
| 29 switch (m_nResultType) { | 32 delete m_Result.sd; |
| 30 case JBIG2_IMAGE_POINTER: | 33 break; |
| 31 delete m_Result.im; | 34 case JBIG2_PATTERN_DICT_POINTER: |
| 32 break; | 35 delete m_Result.pd; |
| 33 case JBIG2_SYMBOL_DICT_POINTER: | 36 break; |
| 34 delete m_Result.sd; | 37 case JBIG2_HUFFMAN_TABLE_POINTER: |
| 35 break; | 38 delete m_Result.ht; |
| 36 case JBIG2_PATTERN_DICT_POINTER: | 39 break; |
| 37 delete m_Result.pd; | 40 default: |
| 38 break; | 41 FX_Free(m_Result.vd); |
| 39 case JBIG2_HUFFMAN_TABLE_POINTER: | |
| 40 delete m_Result.ht; | |
| 41 break; | |
| 42 default: | |
| 43 m_pModule->JBig2_Free(m_Result.vd); | |
| 44 } | |
| 45 } | 42 } |
| 46 } | 43 } |
| OLD | NEW |