| Index: core/src/fxcodec/jbig2/JBig2_SddProc.cpp
|
| diff --git a/core/src/fxcodec/jbig2/JBig2_SddProc.cpp b/core/src/fxcodec/jbig2/JBig2_SddProc.cpp
|
| index 1d0393a7e37f3a2515236f2aece5dc3ebad67066..ab3b34f58321216ae7641cda0684055c17cf0b6a 100644
|
| --- a/core/src/fxcodec/jbig2/JBig2_SddProc.cpp
|
| +++ b/core/src/fxcodec/jbig2/JBig2_SddProc.cpp
|
| @@ -7,6 +7,7 @@
|
| #include "JBig2_SddProc.h"
|
|
|
| #include "../../../../third_party/base/nonstd_unique_ptr.h"
|
| +#include "../../../../third_party/base/stl_util.h"
|
| #include "../../../include/fxcrt/fx_basic.h"
|
| #include "JBig2_ArithIntDecoder.h"
|
| #include "JBig2_GrdProc.h"
|
| @@ -16,10 +17,12 @@
|
| #include "JBig2_SymbolDict.h"
|
| #include "JBig2_TrdProc.h"
|
|
|
| +using pdfium::vector_as_array;
|
| +
|
| CJBig2_SymbolDict* CJBig2_SDDProc::decode_Arith(
|
| CJBig2_ArithDecoder* pArithDecoder,
|
| - JBig2ArithCtx* gbContext,
|
| - JBig2ArithCtx* grContext) {
|
| + std::vector<JBig2ArithCtx>* gbContext,
|
| + std::vector<JBig2ArithCtx>* grContext) {
|
| CJBig2_Image** SDNEWSYMS;
|
| FX_DWORD HCHEIGHT, NSYMSDECODED;
|
| int32_t HCDH;
|
| @@ -104,7 +107,7 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Arith(
|
| pGRD->GBAT[5] = SDAT[5];
|
| pGRD->GBAT[6] = SDAT[6];
|
| pGRD->GBAT[7] = SDAT[7];
|
| - BS = pGRD->decode_Arith(pArithDecoder, gbContext);
|
| + BS = pGRD->decode_Arith(pArithDecoder, vector_as_array(gbContext));
|
| if (!BS) {
|
| goto failed;
|
| }
|
| @@ -192,7 +195,8 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Arith(
|
| ids.IARDX = IARDX.get();
|
| ids.IARDY = IARDY.get();
|
| ids.IAID = IAID.get();
|
| - BS = pDecoder->decode_Arith(pArithDecoder, grContext, &ids);
|
| + BS = pDecoder->decode_Arith(pArithDecoder, vector_as_array(grContext),
|
| + &ids);
|
| if (!BS) {
|
| FX_Free(SBSYMS);
|
| goto failed;
|
| @@ -227,7 +231,7 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Arith(
|
| pGRRD->GRAT[1] = SDRAT[1];
|
| pGRRD->GRAT[2] = SDRAT[2];
|
| pGRRD->GRAT[3] = SDRAT[3];
|
| - BS = pGRRD->decode(pArithDecoder, grContext);
|
| + BS = pGRRD->decode(pArithDecoder, vector_as_array(grContext));
|
| if (!BS) {
|
| FX_Free(SBSYMS);
|
| goto failed;
|
| @@ -285,10 +289,11 @@ failed:
|
| return nullptr;
|
| }
|
|
|
| -CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
|
| - JBig2ArithCtx* gbContext,
|
| - JBig2ArithCtx* grContext,
|
| - IFX_Pause* pPause) {
|
| +CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(
|
| + CJBig2_BitStream* pStream,
|
| + std::vector<JBig2ArithCtx>* gbContext,
|
| + std::vector<JBig2ArithCtx>* grContext,
|
| + IFX_Pause* pPause) {
|
| CJBig2_Image** SDNEWSYMS;
|
| FX_DWORD* SDNEWSYMWIDTHS;
|
| FX_DWORD HCHEIGHT, NSYMSDECODED;
|
| @@ -440,7 +445,7 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
|
| pDecoder->SBRAT[1] = SDRAT[1];
|
| pDecoder->SBRAT[2] = SDRAT[2];
|
| pDecoder->SBRAT[3] = SDRAT[3];
|
| - BS = pDecoder->decode_Huffman(pStream, grContext);
|
| + BS = pDecoder->decode_Huffman(pStream, vector_as_array(grContext));
|
| if (!BS) {
|
| FX_Free(SBSYMCODES);
|
| FX_Free(SBSYMS);
|
| @@ -512,7 +517,7 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
|
| pGRRD->GRAT[3] = SDRAT[3];
|
| nonstd::unique_ptr<CJBig2_ArithDecoder> pArithDecoder(
|
| new CJBig2_ArithDecoder(pStream));
|
| - BS = pGRRD->decode(pArithDecoder.get(), grContext);
|
| + BS = pGRRD->decode(pArithDecoder.get(), vector_as_array(grContext));
|
| if (!BS) {
|
| FX_Free(SBSYMS);
|
| goto failed;
|
|
|