From 5110c4743751145c4ae1934cd1d83bc6c55bb43f Mon Sep 17 00:00:00 2001 From: John Abd-El-Malek Date: Sat, 17 May 2014 22:33:34 -0700 Subject: Initial commit. --- core/src/fxcodec/jbig2/JBig2_Segment.cpp | 53 ++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 core/src/fxcodec/jbig2/JBig2_Segment.cpp (limited to 'core/src/fxcodec/jbig2/JBig2_Segment.cpp') diff --git a/core/src/fxcodec/jbig2/JBig2_Segment.cpp b/core/src/fxcodec/jbig2/JBig2_Segment.cpp new file mode 100644 index 0000000000..788207dc6e --- /dev/null +++ b/core/src/fxcodec/jbig2/JBig2_Segment.cpp @@ -0,0 +1,53 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#include "JBig2_Segment.h" +CJBig2_Segment::CJBig2_Segment() +{ + init(); +} +CJBig2_Segment::~CJBig2_Segment() +{ + clean(); +} +void CJBig2_Segment::init() +{ + m_dwNumber = 0; + m_cFlags.c = 0; + m_nReferred_to_segment_count = 0; + m_pReferred_to_segment_numbers = NULL; + m_dwPage_association = 0; + m_dwData_length = 0; + m_dwHeader_Length = 0; + m_pData = NULL; + m_State = JBIG2_SEGMENT_HEADER_UNPARSED; + m_nResultType = JBIG2_VOID_POINTER; + m_Result.vd = NULL; +} +void CJBig2_Segment::clean() +{ + if(m_pReferred_to_segment_numbers) { + m_pModule->JBig2_Free(m_pReferred_to_segment_numbers); + } + if(m_Result.vd) { + switch(m_nResultType) { + case JBIG2_IMAGE_POINTER: + delete m_Result.im; + break; + case JBIG2_SYMBOL_DICT_POINTER: + delete m_Result.sd; + break; + case JBIG2_PATTERN_DICT_POINTER: + delete m_Result.pd; + break; + case JBIG2_HUFFMAN_TABLE_POINTER: + delete m_Result.ht; + break; + default: + m_pModule->JBig2_Free(m_Result.vd); + } + } +} -- cgit v1.2.3