From 20a909e655147e21f966b95af6b683d85736c8c2 Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Tue, 4 Apr 2017 15:27:21 -0700 Subject: Remove a couple checks for MakeUnique failures. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Combine some common CCodec_Jbig2Module code. Change-Id: I9a046314bc0e9dddc9a8c1a06b37764e9f3cc4b6 Reviewed-on: https://pdfium-review.googlesource.com/3713 Commit-Queue: Lei Zhang Reviewed-by: Nicolás Peña --- core/fxcodec/codec/fx_codec_jbig.cpp | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) (limited to 'core/fxcodec/codec/fx_codec_jbig.cpp') diff --git a/core/fxcodec/codec/fx_codec_jbig.cpp b/core/fxcodec/codec/fx_codec_jbig.cpp index 951fec4813..7df87e981f 100644 --- a/core/fxcodec/codec/fx_codec_jbig.cpp +++ b/core/fxcodec/codec/fx_codec_jbig.cpp @@ -66,40 +66,30 @@ FXCODEC_STATUS CCodec_Jbig2Module::StartDecode( pJbig2Context->m_pContext = pdfium::MakeUnique( global_stream, src_stream, pJBig2DocumentContext->GetSymbolDictCache(), pPause, false); - if (!pJbig2Context->m_pContext) - return FXCODEC_STATUS_ERROR; - int ret = pJbig2Context->m_pContext->getFirstPage(dest_buf, width, height, dest_pitch, pPause); - if (pJbig2Context->m_pContext->GetProcessingStatus() == - FXCODEC_STATUS_DECODE_FINISH) { - pJbig2Context->m_pContext.reset(); - if (ret != JBIG2_SUCCESS) - return FXCODEC_STATUS_ERROR; - - int dword_size = height * dest_pitch / 4; - uint32_t* dword_buf = (uint32_t*)dest_buf; - for (int i = 0; i < dword_size; i++) - dword_buf[i] = ~dword_buf[i]; - return FXCODEC_STATUS_DECODE_FINISH; - } - return pJbig2Context->m_pContext->GetProcessingStatus(); + return Decode(pJbig2Context, ret); } FXCODEC_STATUS CCodec_Jbig2Module::ContinueDecode( CCodec_Jbig2Context* pJbig2Context, IFX_Pause* pPause) { int ret = pJbig2Context->m_pContext->Continue(pPause); - if (pJbig2Context->m_pContext->GetProcessingStatus() != - FXCODEC_STATUS_DECODE_FINISH) { - return pJbig2Context->m_pContext->GetProcessingStatus(); - } + return Decode(pJbig2Context, ret); +} + +FXCODEC_STATUS CCodec_Jbig2Module::Decode(CCodec_Jbig2Context* pJbig2Context, + int result) { + FXCODEC_STATUS status = pJbig2Context->m_pContext->GetProcessingStatus(); + if (status != FXCODEC_STATUS_DECODE_FINISH) + return status; + pJbig2Context->m_pContext.reset(); - if (ret != JBIG2_SUCCESS) + if (result != JBIG2_SUCCESS) return FXCODEC_STATUS_ERROR; int dword_size = pJbig2Context->m_height * pJbig2Context->m_dest_pitch / 4; - uint32_t* dword_buf = (uint32_t*)pJbig2Context->m_dest_buf; + uint32_t* dword_buf = reinterpret_cast(pJbig2Context->m_dest_buf); for (int i = 0; i < dword_size; i++) dword_buf[i] = ~dword_buf[i]; return FXCODEC_STATUS_DECODE_FINISH; -- cgit v1.2.3