| Index: core/fxcodec/jbig2/JBig2_Context.cpp
|
| diff --git a/core/fxcodec/jbig2/JBig2_Context.cpp b/core/fxcodec/jbig2/JBig2_Context.cpp
|
| index febd00b46300c2abf89f0705157916e061ff5945..757840598a94fe469316dd43e84f3fbe7421f8c2 100644
|
| --- a/core/fxcodec/jbig2/JBig2_Context.cpp
|
| +++ b/core/fxcodec/jbig2/JBig2_Context.cpp
|
| @@ -22,6 +22,7 @@
|
| #include "core/fxcodec/jbig2/JBig2_PddProc.h"
|
| #include "core/fxcodec/jbig2/JBig2_SddProc.h"
|
| #include "core/fxcodec/jbig2/JBig2_TrdProc.h"
|
| +#include "third_party/base/ptr_util.h"
|
| #include "third_party/base/stl_util.h"
|
|
|
| namespace {
|
| @@ -60,10 +61,10 @@ CJBig2_Context::CJBig2_Context(CPDF_StreamAcc* pGlobalStream,
|
| m_pSymbolDictCache(pSymbolDictCache),
|
| m_bIsGlobal(bIsGlobal) {
|
| if (pGlobalStream && (pGlobalStream->GetSize() > 0)) {
|
| - m_pGlobalContext.reset(new CJBig2_Context(nullptr, pGlobalStream,
|
| - pSymbolDictCache, pPause, true));
|
| + m_pGlobalContext = pdfium::MakeUnique<CJBig2_Context>(
|
| + nullptr, pGlobalStream, pSymbolDictCache, pPause, true);
|
| }
|
| - m_pStream.reset(new CJBig2_BitStream(pSrcStream));
|
| + m_pStream = pdfium::MakeUnique<CJBig2_BitStream>(pSrcStream);
|
| }
|
|
|
| CJBig2_Context::~CJBig2_Context() {}
|
| @@ -75,7 +76,7 @@ int32_t CJBig2_Context::decode_SquentialOrgnazation(IFX_Pause* pPause) {
|
|
|
| while (m_pStream->getByteLeft() >= JBIG2_MIN_SEGMENT_SIZE) {
|
| if (!m_pSegment) {
|
| - m_pSegment.reset(new CJBig2_Segment);
|
| + m_pSegment = pdfium::MakeUnique<CJBig2_Segment>();
|
| nRet = parseSegmentHeader(m_pSegment.get());
|
| if (nRet != JBIG2_SUCCESS) {
|
| m_pSegment.reset();
|
| @@ -172,7 +173,7 @@ int32_t CJBig2_Context::getFirstPage(uint8_t* pBuf,
|
| }
|
| }
|
| m_PauseStep = 0;
|
| - m_pPage.reset(new CJBig2_Image(width, height, stride, pBuf));
|
| + m_pPage = pdfium::MakeUnique<CJBig2_Image>(width, height, stride, pBuf);
|
| m_bBufSpecified = true;
|
| if (pPause && pPause->NeedToPauseNow()) {
|
| m_PauseStep = 1;
|
| @@ -383,7 +384,8 @@ int32_t CJBig2_Context::ProcessingParseSegmentData(CJBig2_Segment* pSegment,
|
| if (!m_bBufSpecified) {
|
| uint32_t height =
|
| bMaxHeight ? pPageInfo->m_wMaxStripeSize : pPageInfo->m_dwHeight;
|
| - m_pPage.reset(new CJBig2_Image(pPageInfo->m_dwWidth, height));
|
| + m_pPage =
|
| + pdfium::MakeUnique<CJBig2_Image>(pPageInfo->m_dwWidth, height);
|
| }
|
|
|
| if (!m_pPage->m_pData) {
|
| @@ -497,12 +499,12 @@ int32_t CJBig2_Context::parseSymbolDict(CJBig2_Segment* pSegment,
|
|
|
| int32_t nIndex = 0;
|
| if (cSDHUFFDH == 0) {
|
| - Table_B4.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B4, HuffmanTable_B4_Size, HuffmanTable_HTOOB_B4));
|
| + Table_B4 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B4, HuffmanTable_B4_Size, HuffmanTable_HTOOB_B4);
|
| pSymbolDictDecoder->SDHUFFDH = Table_B4.get();
|
| } else if (cSDHUFFDH == 1) {
|
| - Table_B5.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B5, HuffmanTable_B5_Size, HuffmanTable_HTOOB_B5));
|
| + Table_B5 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B5, HuffmanTable_B5_Size, HuffmanTable_HTOOB_B5);
|
| pSymbolDictDecoder->SDHUFFDH = Table_B5.get();
|
| } else {
|
| CJBig2_Segment* pSeg =
|
| @@ -512,12 +514,12 @@ int32_t CJBig2_Context::parseSymbolDict(CJBig2_Segment* pSegment,
|
| pSymbolDictDecoder->SDHUFFDH = pSeg->m_Result.ht;
|
| }
|
| if (cSDHUFFDW == 0) {
|
| - Table_B2.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B2, HuffmanTable_B2_Size, HuffmanTable_HTOOB_B2));
|
| + Table_B2 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B2, HuffmanTable_B2_Size, HuffmanTable_HTOOB_B2);
|
| pSymbolDictDecoder->SDHUFFDW = Table_B2.get();
|
| } else if (cSDHUFFDW == 1) {
|
| - Table_B3.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B3, HuffmanTable_B3_Size, HuffmanTable_HTOOB_B3));
|
| + Table_B3 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B3, HuffmanTable_B3_Size, HuffmanTable_HTOOB_B3);
|
| pSymbolDictDecoder->SDHUFFDW = Table_B3.get();
|
| } else {
|
| CJBig2_Segment* pSeg =
|
| @@ -527,8 +529,8 @@ int32_t CJBig2_Context::parseSymbolDict(CJBig2_Segment* pSegment,
|
| pSymbolDictDecoder->SDHUFFDW = pSeg->m_Result.ht;
|
| }
|
| if (cSDHUFFBMSIZE == 0) {
|
| - Table_B1.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B1, HuffmanTable_B1_Size, HuffmanTable_HTOOB_B1));
|
| + Table_B1 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B1, HuffmanTable_B1_Size, HuffmanTable_HTOOB_B1);
|
| pSymbolDictDecoder->SDHUFFBMSIZE = Table_B1.get();
|
| } else {
|
| CJBig2_Segment* pSeg =
|
| @@ -540,8 +542,8 @@ int32_t CJBig2_Context::parseSymbolDict(CJBig2_Segment* pSegment,
|
| if (pSymbolDictDecoder->SDREFAGG == 1) {
|
| if (cSDHUFFAGGINST == 0) {
|
| if (!Table_B1) {
|
| - Table_B1.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B1, HuffmanTable_B1_Size, HuffmanTable_HTOOB_B1));
|
| + Table_B1 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B1, HuffmanTable_B1_Size, HuffmanTable_HTOOB_B1);
|
| }
|
| pSymbolDictDecoder->SDHUFFAGGINST = Table_B1.get();
|
| } else {
|
| @@ -759,12 +761,12 @@ int32_t CJBig2_Context::parseTextRegion(CJBig2_Segment* pSegment) {
|
| }
|
| int32_t nIndex = 0;
|
| if (cSBHUFFFS == 0) {
|
| - Table_B6.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B6, HuffmanTable_B6_Size, HuffmanTable_HTOOB_B6));
|
| + Table_B6 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B6, HuffmanTable_B6_Size, HuffmanTable_HTOOB_B6);
|
| pTRD->SBHUFFFS = Table_B6.get();
|
| } else if (cSBHUFFFS == 1) {
|
| - Table_B7.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B7, HuffmanTable_B7_Size, HuffmanTable_HTOOB_B7));
|
| + Table_B7 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B7, HuffmanTable_B7_Size, HuffmanTable_HTOOB_B7);
|
| pTRD->SBHUFFFS = Table_B7.get();
|
| } else {
|
| CJBig2_Segment* pSeg =
|
| @@ -774,16 +776,16 @@ int32_t CJBig2_Context::parseTextRegion(CJBig2_Segment* pSegment) {
|
| pTRD->SBHUFFFS = pSeg->m_Result.ht;
|
| }
|
| if (cSBHUFFDS == 0) {
|
| - Table_B8.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B8, HuffmanTable_B8_Size, HuffmanTable_HTOOB_B8));
|
| + Table_B8 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B8, HuffmanTable_B8_Size, HuffmanTable_HTOOB_B8);
|
| pTRD->SBHUFFDS = Table_B8.get();
|
| } else if (cSBHUFFDS == 1) {
|
| - Table_B9.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B9, HuffmanTable_B9_Size, HuffmanTable_HTOOB_B9));
|
| + Table_B9 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B9, HuffmanTable_B9_Size, HuffmanTable_HTOOB_B9);
|
| pTRD->SBHUFFDS = Table_B9.get();
|
| } else if (cSBHUFFDS == 2) {
|
| - Table_B10.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B10, HuffmanTable_B10_Size, HuffmanTable_HTOOB_B10));
|
| + Table_B10 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B10, HuffmanTable_B10_Size, HuffmanTable_HTOOB_B10);
|
| pTRD->SBHUFFDS = Table_B10.get();
|
| } else {
|
| CJBig2_Segment* pSeg =
|
| @@ -793,16 +795,16 @@ int32_t CJBig2_Context::parseTextRegion(CJBig2_Segment* pSegment) {
|
| pTRD->SBHUFFDS = pSeg->m_Result.ht;
|
| }
|
| if (cSBHUFFDT == 0) {
|
| - Table_B11.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B11, HuffmanTable_B11_Size, HuffmanTable_HTOOB_B11));
|
| + Table_B11 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B11, HuffmanTable_B11_Size, HuffmanTable_HTOOB_B11);
|
| pTRD->SBHUFFDT = Table_B11.get();
|
| } else if (cSBHUFFDT == 1) {
|
| - Table_B12.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B12, HuffmanTable_B12_Size, HuffmanTable_HTOOB_B12));
|
| + Table_B12 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B12, HuffmanTable_B12_Size, HuffmanTable_HTOOB_B12);
|
| pTRD->SBHUFFDT = Table_B12.get();
|
| } else if (cSBHUFFDT == 2) {
|
| - Table_B13.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B13, HuffmanTable_B13_Size, HuffmanTable_HTOOB_B13));
|
| + Table_B13 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B13, HuffmanTable_B13_Size, HuffmanTable_HTOOB_B13);
|
| pTRD->SBHUFFDT = Table_B13.get();
|
| } else {
|
| CJBig2_Segment* pSeg =
|
| @@ -812,12 +814,12 @@ int32_t CJBig2_Context::parseTextRegion(CJBig2_Segment* pSegment) {
|
| pTRD->SBHUFFDT = pSeg->m_Result.ht;
|
| }
|
| if (cSBHUFFRDW == 0) {
|
| - Table_B14.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B14, HuffmanTable_B14_Size, HuffmanTable_HTOOB_B14));
|
| + Table_B14 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B14, HuffmanTable_B14_Size, HuffmanTable_HTOOB_B14);
|
| pTRD->SBHUFFRDW = Table_B14.get();
|
| } else if (cSBHUFFRDW == 1) {
|
| - Table_B15.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B15, HuffmanTable_B15_Size, HuffmanTable_HTOOB_B15));
|
| + Table_B15 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B15, HuffmanTable_B15_Size, HuffmanTable_HTOOB_B15);
|
| pTRD->SBHUFFRDW = Table_B15.get();
|
| } else {
|
| CJBig2_Segment* pSeg =
|
| @@ -828,14 +830,14 @@ int32_t CJBig2_Context::parseTextRegion(CJBig2_Segment* pSegment) {
|
| }
|
| if (cSBHUFFRDH == 0) {
|
| if (!Table_B14) {
|
| - Table_B14.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B14, HuffmanTable_B14_Size, HuffmanTable_HTOOB_B14));
|
| + Table_B14 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B14, HuffmanTable_B14_Size, HuffmanTable_HTOOB_B14);
|
| }
|
| pTRD->SBHUFFRDH = Table_B14.get();
|
| } else if (cSBHUFFRDH == 1) {
|
| if (!Table_B15) {
|
| - Table_B15.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B15, HuffmanTable_B15_Size, HuffmanTable_HTOOB_B15));
|
| + Table_B15 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B15, HuffmanTable_B15_Size, HuffmanTable_HTOOB_B15);
|
| }
|
| pTRD->SBHUFFRDH = Table_B15.get();
|
| } else {
|
| @@ -847,14 +849,14 @@ int32_t CJBig2_Context::parseTextRegion(CJBig2_Segment* pSegment) {
|
| }
|
| if (cSBHUFFRDX == 0) {
|
| if (!Table_B14) {
|
| - Table_B14.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B14, HuffmanTable_B14_Size, HuffmanTable_HTOOB_B14));
|
| + Table_B14 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B14, HuffmanTable_B14_Size, HuffmanTable_HTOOB_B14);
|
| }
|
| pTRD->SBHUFFRDX = Table_B14.get();
|
| } else if (cSBHUFFRDX == 1) {
|
| if (!Table_B15) {
|
| - Table_B15.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B15, HuffmanTable_B15_Size, HuffmanTable_HTOOB_B15));
|
| + Table_B15 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B15, HuffmanTable_B15_Size, HuffmanTable_HTOOB_B15);
|
| }
|
| pTRD->SBHUFFRDX = Table_B15.get();
|
| } else {
|
| @@ -866,14 +868,14 @@ int32_t CJBig2_Context::parseTextRegion(CJBig2_Segment* pSegment) {
|
| }
|
| if (cSBHUFFRDY == 0) {
|
| if (!Table_B14) {
|
| - Table_B14.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B14, HuffmanTable_B14_Size, HuffmanTable_HTOOB_B14));
|
| + Table_B14 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B14, HuffmanTable_B14_Size, HuffmanTable_HTOOB_B14);
|
| }
|
| pTRD->SBHUFFRDY = Table_B14.get();
|
| } else if (cSBHUFFRDY == 1) {
|
| if (!Table_B15) {
|
| - Table_B15.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B15, HuffmanTable_B15_Size, HuffmanTable_HTOOB_B15));
|
| + Table_B15 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B15, HuffmanTable_B15_Size, HuffmanTable_HTOOB_B15);
|
| }
|
| pTRD->SBHUFFRDY = Table_B15.get();
|
| } else {
|
| @@ -884,8 +886,8 @@ int32_t CJBig2_Context::parseTextRegion(CJBig2_Segment* pSegment) {
|
| pTRD->SBHUFFRDY = pSeg->m_Result.ht;
|
| }
|
| if (cSBHUFFRSIZE == 0) {
|
| - Table_B1.reset(new CJBig2_HuffmanTable(
|
| - HuffmanTable_B1, HuffmanTable_B1_Size, HuffmanTable_HTOOB_B1));
|
| + Table_B1 = pdfium::MakeUnique<CJBig2_HuffmanTable>(
|
| + HuffmanTable_B1, HuffmanTable_B1_Size, HuffmanTable_HTOOB_B1);
|
| pTRD->SBHUFFRSIZE = Table_B1.get();
|
| } else {
|
| CJBig2_Segment* pSeg =
|
| @@ -1095,7 +1097,8 @@ int32_t CJBig2_Context::parseGenericRegion(CJBig2_Segment* pSegment,
|
| m_gbContext.resize(size);
|
| }
|
| if (!m_pArithDecoder) {
|
| - m_pArithDecoder.reset(new CJBig2_ArithDecoder(m_pStream.get()));
|
| + m_pArithDecoder =
|
| + pdfium::MakeUnique<CJBig2_ArithDecoder>(m_pStream.get());
|
| m_ProcessingStatus = m_pGRD->Start_decode_Arith(&pSegment->m_Result.im,
|
| m_pArithDecoder.get(),
|
| &m_gbContext[0], pPause);
|
|
|