| Index: core/src/fxcodec/jbig2/JBig2_ArithIntDecoder.cpp
|
| diff --git a/core/src/fxcodec/jbig2/JBig2_ArithIntDecoder.cpp b/core/src/fxcodec/jbig2/JBig2_ArithIntDecoder.cpp
|
| deleted file mode 100644
|
| index 2fac8df5a95da2d32f001c3f1960533f6d1bf4a0..0000000000000000000000000000000000000000
|
| --- a/core/src/fxcodec/jbig2/JBig2_ArithIntDecoder.cpp
|
| +++ /dev/null
|
| @@ -1,99 +0,0 @@
|
| -// 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 "core/src/fxcodec/jbig2/JBig2_ArithIntDecoder.h"
|
| -
|
| -#include <vector>
|
| -
|
| -#include "core/include/fxcrt/fx_basic.h"
|
| -
|
| -namespace {
|
| -
|
| -int ShiftOr(int val, int bitwise_or_val) {
|
| - return (val << 1) | bitwise_or_val;
|
| -}
|
| -
|
| -const struct ArithIntDecodeData {
|
| - int nNeedBits;
|
| - int nValue;
|
| -} g_ArithIntDecodeData[] = {
|
| - {2, 0},
|
| - {4, 4},
|
| - {6, 20},
|
| - {8, 84},
|
| - {12, 340},
|
| - {32, 4436},
|
| -};
|
| -
|
| -size_t RecursiveDecode(CJBig2_ArithDecoder* decoder,
|
| - std::vector<JBig2ArithCtx>* context,
|
| - int* prev,
|
| - size_t depth) {
|
| - static const size_t kDepthEnd = FX_ArraySize(g_ArithIntDecodeData) - 1;
|
| - if (depth == kDepthEnd)
|
| - return kDepthEnd;
|
| -
|
| - JBig2ArithCtx* pCX = &(*context)[*prev];
|
| - int D = decoder->DECODE(pCX);
|
| - *prev = ShiftOr(*prev, D);
|
| - if (!D)
|
| - return depth;
|
| - return RecursiveDecode(decoder, context, prev, depth + 1);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -CJBig2_ArithIntDecoder::CJBig2_ArithIntDecoder() {
|
| - m_IAx.resize(512);
|
| -}
|
| -
|
| -CJBig2_ArithIntDecoder::~CJBig2_ArithIntDecoder() {
|
| -}
|
| -
|
| -bool CJBig2_ArithIntDecoder::decode(CJBig2_ArithDecoder* pArithDecoder,
|
| - int* nResult) {
|
| - int PREV = 1;
|
| - const int S = pArithDecoder->DECODE(&m_IAx[PREV]);
|
| - PREV = ShiftOr(PREV, S);
|
| -
|
| - const size_t nDecodeDataIndex =
|
| - RecursiveDecode(pArithDecoder, &m_IAx, &PREV, 0);
|
| -
|
| - int nTemp = 0;
|
| - for (int i = 0; i < g_ArithIntDecodeData[nDecodeDataIndex].nNeedBits; ++i) {
|
| - int D = pArithDecoder->DECODE(&m_IAx[PREV]);
|
| - PREV = ShiftOr(PREV, D);
|
| - if (PREV >= 256)
|
| - PREV = (PREV & 511) | 256;
|
| - nTemp = ShiftOr(nTemp, D);
|
| - }
|
| - int nValue = g_ArithIntDecodeData[nDecodeDataIndex].nValue;
|
| - nValue += nTemp;
|
| - if (S == 1 && nValue > 0)
|
| - nValue = -nValue;
|
| -
|
| - *nResult = nValue;
|
| - return S != 1 || nValue != 0;
|
| -}
|
| -
|
| -CJBig2_ArithIaidDecoder::CJBig2_ArithIaidDecoder(unsigned char SBSYMCODELENA)
|
| - : SBSYMCODELEN(SBSYMCODELENA) {
|
| - m_IAID.resize(1 << SBSYMCODELEN);
|
| -}
|
| -
|
| -CJBig2_ArithIaidDecoder::~CJBig2_ArithIaidDecoder() {
|
| -}
|
| -
|
| -void CJBig2_ArithIaidDecoder::decode(CJBig2_ArithDecoder* pArithDecoder,
|
| - FX_DWORD* nResult) {
|
| - int PREV = 1;
|
| - for (unsigned char i = 0; i < SBSYMCODELEN; ++i) {
|
| - JBig2ArithCtx* pCX = &m_IAID[PREV];
|
| - int D = pArithDecoder->DECODE(pCX);
|
| - PREV = ShiftOr(PREV, D);
|
| - }
|
| - *nResult = PREV - (1 << SBSYMCODELEN);
|
| -}
|
|
|