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;
