IFX_Pause is passed to CJBig2_Context, no need to store.

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>
diff --git a/core/fxcodec/codec/fx_codec_jbig.cpp b/core/fxcodec/codec/fx_codec_jbig.cpp
index 7df87e9..32d030e 100644
--- a/core/fxcodec/codec/fx_codec_jbig.cpp
+++ b/core/fxcodec/codec/fx_codec_jbig.cpp
@@ -65,7 +65,7 @@
   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 69a9dd0..275c699 100644
--- a/core/fxcodec/jbig2/JBig2_Context.cpp
+++ b/core/fxcodec/jbig2/JBig2_Context.cpp
@@ -50,20 +50,18 @@
     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 @@
       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 4151fa3..e4cf33c 100644
--- a/core/fxcodec/jbig2/JBig2_Context.h
+++ b/core/fxcodec/jbig2/JBig2_Context.h
@@ -43,7 +43,6 @@
   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 @@
   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;