1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 
7 #include "JBig2_Segment.h"
8 
9 #include "core/include/fxcrt/fx_memory.h"
10 
CJBig2_Segment()11 CJBig2_Segment::CJBig2_Segment() {
12   m_dwNumber = 0;
13   m_cFlags.c = 0;
14   m_nReferred_to_segment_count = 0;
15   m_pReferred_to_segment_numbers = NULL;
16   m_dwPage_association = 0;
17   m_dwData_length = 0;
18   m_dwHeader_Length = 0;
19   m_dwObjNum = 0;
20   m_dwDataOffset = 0;
21   m_State = JBIG2_SEGMENT_HEADER_UNPARSED;
22   m_nResultType = JBIG2_VOID_POINTER;
23   m_Result.vd = NULL;
24 }
~CJBig2_Segment()25 CJBig2_Segment::~CJBig2_Segment() {
26   FX_Free(m_pReferred_to_segment_numbers);
27 
28   switch (m_nResultType) {
29     case JBIG2_IMAGE_POINTER:
30       delete m_Result.im;
31       break;
32     case JBIG2_SYMBOL_DICT_POINTER:
33       delete m_Result.sd;
34       break;
35     case JBIG2_PATTERN_DICT_POINTER:
36       delete m_Result.pd;
37       break;
38     case JBIG2_HUFFMAN_TABLE_POINTER:
39       delete m_Result.ht;
40       break;
41     default:
42       FX_Free(m_Result.vd);
43   }
44 }
45