diff options
author | Tom Sepez <tsepez@chromium.org> | 2017-05-26 13:42:15 -0700 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-05-26 20:58:50 +0000 |
commit | 56e5e67fd2ac582dcfa83821c815a0014a43bd10 (patch) | |
tree | ee31af73d2c1d4497c1867c262c47039a3b5d854 | |
parent | 385d32f64613f08bad5cb63f0b8dc4f847f240f4 (diff) | |
download | pdfium-chromium/3113.tar.xz |
IFX_Pause is passed to CJBig2_Context, no need to store.chromium/3113
Avoids the possibility of having a stale pointer in the context.
Bug: 726653
Change-Id: I8b41d2ab04e7ab07e694431b53491b3d0861e4ee
Reviewed-on: https://pdfium-review.googlesource.com/6074
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
-rw-r--r-- | core/fxcodec/codec/fx_codec_jbig.cpp | 2 | ||||
-rw-r--r-- | core/fxcodec/jbig2/JBig2_Context.cpp | 8 | ||||
-rw-r--r-- | core/fxcodec/jbig2/JBig2_Context.h | 2 |
3 files changed, 4 insertions, 8 deletions
diff --git a/core/fxcodec/codec/fx_codec_jbig.cpp b/core/fxcodec/codec/fx_codec_jbig.cpp index 7df87e981f..32d030e98d 100644 --- a/core/fxcodec/codec/fx_codec_jbig.cpp +++ b/core/fxcodec/codec/fx_codec_jbig.cpp @@ -65,7 +65,7 @@ FXCODEC_STATUS CCodec_Jbig2Module::StartDecode( memset(dest_buf, 0, height * dest_pitch); pJbig2Context->m_pContext = pdfium::MakeUnique<CJBig2_Context>( global_stream, src_stream, pJBig2DocumentContext->GetSymbolDictCache(), - pPause, false); + false); int ret = pJbig2Context->m_pContext->getFirstPage(dest_buf, width, height, dest_pitch, pPause); return Decode(pJbig2Context, ret); diff --git a/core/fxcodec/jbig2/JBig2_Context.cpp b/core/fxcodec/jbig2/JBig2_Context.cpp index 69a9dd0daa..275c69915c 100644 --- a/core/fxcodec/jbig2/JBig2_Context.cpp +++ b/core/fxcodec/jbig2/JBig2_Context.cpp @@ -50,20 +50,18 @@ CJBig2_Context::CJBig2_Context( const CFX_RetainPtr<CPDF_StreamAcc>& pGlobalStream, const CFX_RetainPtr<CPDF_StreamAcc>& pSrcStream, std::list<CJBig2_CachePair>* pSymbolDictCache, - IFX_Pause* pPause, bool bIsGlobal) : m_nSegmentDecoded(0), m_bInPage(false), m_bBufSpecified(false), m_PauseStep(10), - m_pPause(pPause), m_ProcessingStatus(FXCODEC_STATUS_FRAME_READY), m_dwOffset(0), m_pSymbolDictCache(pSymbolDictCache), m_bIsGlobal(bIsGlobal) { - if (pGlobalStream && (pGlobalStream->GetSize() > 0)) { + if (pGlobalStream && pGlobalStream->GetSize() > 0) { m_pGlobalContext = pdfium::MakeUnique<CJBig2_Context>( - nullptr, pGlobalStream, pSymbolDictCache, pPause, true); + nullptr, pGlobalStream, pSymbolDictCache, true); } m_pStream = pdfium::MakeUnique<CJBig2_BitStream>(pSrcStream); } @@ -131,7 +129,7 @@ int32_t CJBig2_Context::decode_RandomOrgnazation_FirstPage(IFX_Pause* pPause) { break; } m_SegmentList.push_back(std::move(pSegment)); - if (pPause && m_pPause && pPause->NeedToPauseNow()) { + if (pPause && pPause->NeedToPauseNow()) { m_PauseStep = 3; m_ProcessingStatus = FXCODEC_STATUS_DECODE_TOBECONTINUE; return JBIG2_SUCCESS; diff --git a/core/fxcodec/jbig2/JBig2_Context.h b/core/fxcodec/jbig2/JBig2_Context.h index 4151fa356e..e4cf33ca96 100644 --- a/core/fxcodec/jbig2/JBig2_Context.h +++ b/core/fxcodec/jbig2/JBig2_Context.h @@ -43,7 +43,6 @@ class CJBig2_Context { CJBig2_Context(const CFX_RetainPtr<CPDF_StreamAcc>& pGlobalStream, const CFX_RetainPtr<CPDF_StreamAcc>& pSrcStream, std::list<CJBig2_CachePair>* pSymbolDictCache, - IFX_Pause* pPause, bool bIsGlobal); ~CJBig2_Context(); @@ -95,7 +94,6 @@ class CJBig2_Context { bool m_bInPage; bool m_bBufSpecified; int32_t m_PauseStep; - CFX_UnownedPtr<IFX_Pause> const m_pPause; FXCODEC_STATUS m_ProcessingStatus; std::vector<JBig2ArithCtx> m_gbContext; std::unique_ptr<CJBig2_ArithDecoder> m_pArithDecoder; |