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