From 48f776f7e801d719683b251dc21ee8c0e3250d90 Mon Sep 17 00:00:00 2001 From: Nicolas Pena Date: Thu, 5 Jan 2017 13:22:17 -0500 Subject: Remove unused CPDF_ImageCacheEntry::GetCachedBitmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GetCachedBitmap method is not being used. This removal simplifies some of the code. Change-Id: I075c245c3511e8a1b595c8ba148991f7c838f504 Reviewed-on: https://pdfium-review.googlesource.com/2154 Commit-Queue: Nicolás Peña Reviewed-by: Tom Sepez --- core/fpdfapi/page/cpdf_image.cpp | 12 +--- core/fpdfapi/page/cpdf_image.h | 6 +- core/fpdfapi/render/cpdf_dibsource.cpp | 95 ++++++---------------------- core/fpdfapi/render/cpdf_dibsource.h | 12 +--- core/fpdfapi/render/cpdf_imagecacheentry.cpp | 41 ------------ core/fpdfapi/render/cpdf_imagecacheentry.h | 12 +--- core/fxge/dib/fx_dib_engine_unittest.cpp | 3 +- 7 files changed, 28 insertions(+), 153 deletions(-) diff --git a/core/fpdfapi/page/cpdf_image.cpp b/core/fpdfapi/page/cpdf_image.cpp index 813ee2b0ed..6b0bfd7d6d 100644 --- a/core/fpdfapi/page/cpdf_image.cpp +++ b/core/fpdfapi/page/cpdf_image.cpp @@ -324,17 +324,11 @@ void CPDF_Image::ResetCache(CPDF_Page* pPage, const CFX_DIBitmap* pBitmap) { pPage->GetRenderCache()->ResetBitmap(m_pStream.Get(), pBitmap); } -std::unique_ptr CPDF_Image::LoadDIBSource(CFX_DIBSource** ppMask, - uint32_t* pMatteColor, - bool bStdCS, - uint32_t GroupFamily, - bool bLoadMask) const { +std::unique_ptr CPDF_Image::LoadDIBSource() const { auto source = pdfium::MakeUnique(); - if (!source->Load(m_pDocument, m_pStream.Get(), - reinterpret_cast(ppMask), pMatteColor, - nullptr, nullptr, bStdCS, GroupFamily, bLoadMask)) { + if (!source->Load(m_pDocument, m_pStream.Get())) return nullptr; - } + return std::move(source); } diff --git a/core/fpdfapi/page/cpdf_image.h b/core/fpdfapi/page/cpdf_image.h index 6591897d1e..1909498102 100644 --- a/core/fpdfapi/page/cpdf_image.h +++ b/core/fpdfapi/page/cpdf_image.h @@ -44,11 +44,7 @@ class CPDF_Image { bool IsMask() const { return m_bIsMask; } bool IsInterpol() const { return m_bInterpolate; } - std::unique_ptr LoadDIBSource(CFX_DIBSource** ppMask = nullptr, - uint32_t* pMatteColor = nullptr, - bool bStdCS = false, - uint32_t GroupFamily = 0, - bool bLoadMask = false) const; + std::unique_ptr LoadDIBSource() const; void SetImage(const CFX_DIBitmap* pDIBitmap); void SetJpegImage(const CFX_RetainPtr& pFile); diff --git a/core/fpdfapi/render/cpdf_dibsource.cpp b/core/fpdfapi/render/cpdf_dibsource.cpp index c84adfe1ec..33a8d930a5 100644 --- a/core/fpdfapi/render/cpdf_dibsource.cpp +++ b/core/fpdfapi/render/cpdf_dibsource.cpp @@ -134,23 +134,15 @@ CPDF_DIBSource::~CPDF_DIBSource() { } } -bool CPDF_DIBSource::Load(CPDF_Document* pDoc, - const CPDF_Stream* pStream, - CPDF_DIBSource** ppMask, - uint32_t* pMatteColor, - CPDF_Dictionary* pFormResources, - CPDF_Dictionary* pPageResources, - bool bStdCS, - uint32_t GroupFamily, - bool bLoadMask) { - if (!pStream) { +bool CPDF_DIBSource::Load(CPDF_Document* pDoc, const CPDF_Stream* pStream) { + if (!pStream) return false; - } + m_pDocument = pDoc; m_pDict = pStream->GetDict(); - if (!m_pDict) { + if (!m_pDict) return false; - } + m_pStream = pStream; m_Width = m_pDict->GetIntegerFor("Width"); m_Height = m_pDict->GetIntegerFor("Height"); @@ -158,28 +150,27 @@ bool CPDF_DIBSource::Load(CPDF_Document* pDoc, m_Height > kMaxImageDimension) { return false; } - m_GroupFamily = GroupFamily; - m_bLoadMask = bLoadMask; - if (!LoadColorInfo(m_pStream->IsInline() ? pFormResources : nullptr, - pPageResources)) { + m_GroupFamily = 0; + m_bLoadMask = false; + if (!LoadColorInfo(nullptr, nullptr)) return false; - } - if (m_bDoBpcCheck && (m_bpc == 0 || m_nComponents == 0)) { + + if (m_bDoBpcCheck && (m_bpc == 0 || m_nComponents == 0)) return false; - } + FX_SAFE_UINT32 src_size = CalculatePitch8(m_bpc, m_nComponents, m_Width) * m_Height; - if (!src_size.IsValid()) { + if (!src_size.IsValid()) return false; - } + m_pStreamAcc = pdfium::MakeUnique(); m_pStreamAcc->LoadAllData(pStream, false, src_size.ValueOrDie(), true); - if (m_pStreamAcc->GetSize() == 0 || !m_pStreamAcc->GetData()) { + if (m_pStreamAcc->GetSize() == 0 || !m_pStreamAcc->GetData()) return false; - } - if (!CreateDecoder()) { + + if (!CreateDecoder()) return false; - } + if (m_bImageMask) { m_bpp = 1; m_bpc = 1; @@ -193,30 +184,21 @@ bool CPDF_DIBSource::Load(CPDF_Document* pDoc, m_bpp = 24; } FX_SAFE_UINT32 pitch = CalculatePitch32(m_bpp, m_Width); - if (!pitch.IsValid()) { + if (!pitch.IsValid()) return false; - } + m_pLineBuf = FX_Alloc(uint8_t, pitch.ValueOrDie()); - if (m_pColorSpace && bStdCS) { - m_pColorSpace->EnableStdConversion(true); - } LoadPalette(); if (m_bColorKey) { m_bpp = 32; m_AlphaFlag = 2; pitch = CalculatePitch32(m_bpp, m_Width); - if (!pitch.IsValid()) { + if (!pitch.IsValid()) return false; - } + m_pMaskedLine = FX_Alloc(uint8_t, pitch.ValueOrDie()); } m_Pitch = pitch.ValueOrDie(); - if (ppMask) { - *ppMask = LoadMask(*pMatteColor); - } - if (m_pColorSpace && bStdCS) { - m_pColorSpace->EnableStdConversion(false); - } return true; } @@ -710,31 +692,6 @@ void CPDF_DIBSource::LoadJpxBitmap() { m_bpc = 8; } -CPDF_DIBSource* CPDF_DIBSource::LoadMask(uint32_t& MatteColor) { - MatteColor = 0xFFFFFFFF; - CPDF_Stream* pSoftMask = m_pDict->GetStreamFor("SMask"); - if (pSoftMask) { - CPDF_Array* pMatte = pSoftMask->GetDict()->GetArrayFor("Matte"); - if (pMatte && m_pColorSpace && - m_pColorSpace->CountComponents() <= m_nComponents) { - std::vector colors(m_nComponents); - for (uint32_t i = 0; i < m_nComponents; i++) { - colors[i] = pMatte->GetFloatAt(i); - } - FX_FLOAT R, G, B; - m_pColorSpace->GetRGB(colors.data(), R, G, B); - MatteColor = FXARGB_MAKE(0, FXSYS_round(R * 255), FXSYS_round(G * 255), - FXSYS_round(B * 255)); - } - return LoadMaskDIB(pSoftMask); - } - - if (CPDF_Stream* pStream = ToStream(m_pDict->GetDirectObjectFor("Mask"))) - return LoadMaskDIB(pStream); - - return nullptr; -} - int CPDF_DIBSource::StratLoadMask() { m_MatteColor = 0XFFFFFFFF; m_pMaskStream = m_pDict->GetStreamFor("SMask"); @@ -783,16 +740,6 @@ CPDF_DIBSource* CPDF_DIBSource::DetachMask() { return pDIBSource; } -CPDF_DIBSource* CPDF_DIBSource::LoadMaskDIB(CPDF_Stream* pMask) { - CPDF_DIBSource* pMaskSource = new CPDF_DIBSource; - if (!pMaskSource->Load(m_pDocument, pMask, nullptr, nullptr, nullptr, nullptr, - true)) { - delete pMaskSource; - return nullptr; - } - return pMaskSource; -} - int CPDF_DIBSource::StartLoadMaskDIB() { m_pMask = new CPDF_DIBSource; int ret = m_pMask->StartLoadDIBSource(m_pDocument, m_pMaskStream, false, diff --git a/core/fpdfapi/render/cpdf_dibsource.h b/core/fpdfapi/render/cpdf_dibsource.h index 8369d2a1be..d5820d8bae 100644 --- a/core/fpdfapi/render/cpdf_dibsource.h +++ b/core/fpdfapi/render/cpdf_dibsource.h @@ -42,15 +42,7 @@ class CPDF_DIBSource : public CFX_DIBSource { CPDF_DIBSource(); ~CPDF_DIBSource() override; - bool Load(CPDF_Document* pDoc, - const CPDF_Stream* pStream, - CPDF_DIBSource** ppMask, - uint32_t* pMatteColor, - CPDF_Dictionary* pFormResources, - CPDF_Dictionary* pPageResources, - bool bStdCS = false, - uint32_t GroupFamily = 0, - bool bLoadMask = false); + bool Load(CPDF_Document* pDoc, const CPDF_Stream* pStream); // CFX_DIBSource bool SkipToScanline(int line, IFX_Pause* pPause) const override; @@ -85,8 +77,6 @@ class CPDF_DIBSource : public CFX_DIBSource { bool LoadColorInfo(const CPDF_Dictionary* pFormResources, const CPDF_Dictionary* pPageResources); DIB_COMP_DATA* GetDecodeAndMaskArray(bool& bDefaultDecode, bool& bColorKey); - CPDF_DIBSource* LoadMask(uint32_t& MatteColor); - CPDF_DIBSource* LoadMaskDIB(CPDF_Stream* pMask); void LoadJpxBitmap(); void LoadPalette(); int CreateDecoder(); diff --git a/core/fpdfapi/render/cpdf_imagecacheentry.cpp b/core/fpdfapi/render/cpdf_imagecacheentry.cpp index 84efd925c8..f11cae888d 100644 --- a/core/fpdfapi/render/cpdf_imagecacheentry.cpp +++ b/core/fpdfapi/render/cpdf_imagecacheentry.cpp @@ -45,47 +45,6 @@ static uint32_t FPDF_ImageCache_EstimateImageSize(const CFX_DIBSource* pDIB) { : 0; } -bool CPDF_ImageCacheEntry::GetCachedBitmap(CFX_DIBSource*& pBitmap, - CFX_DIBSource*& pMask, - uint32_t& MatteColor, - CPDF_Dictionary* pPageResources, - bool bStdCS, - uint32_t GroupFamily, - bool bLoadMask, - CPDF_RenderStatus* pRenderStatus, - int32_t downsampleWidth, - int32_t downsampleHeight) { - if (m_pCachedBitmap) { - pBitmap = m_pCachedBitmap.get(); - pMask = m_pCachedMask.get(); - MatteColor = m_MatteColor; - return true; - } - if (!pRenderStatus) - return false; - - CPDF_RenderContext* pContext = pRenderStatus->GetContext(); - CPDF_PageRenderCache* pPageRenderCache = pContext->GetPageCache(); - m_dwTimeCount = pPageRenderCache->GetTimeCount(); - std::unique_ptr pSrc = pdfium::MakeUnique(); - CPDF_DIBSource* pMaskSrc = nullptr; - if (!pSrc->Load(m_pDocument, m_pStream, &pMaskSrc, &MatteColor, - pRenderStatus->m_pFormResource, pPageResources, bStdCS, - GroupFamily, bLoadMask)) { - pBitmap = nullptr; - return false; - } - m_MatteColor = MatteColor; - m_pCachedBitmap = std::move(pSrc); - if (pMaskSrc) - m_pCachedMask = pdfium::WrapUnique(pMaskSrc); - - pBitmap = m_pCachedBitmap.get(); - pMask = m_pCachedMask.get(); - CalcSize(); - return false; -} - CFX_DIBSource* CPDF_ImageCacheEntry::DetachBitmap() { CFX_DIBSource* pDIBSource = m_pCurBitmap; m_pCurBitmap = nullptr; diff --git a/core/fpdfapi/render/cpdf_imagecacheentry.h b/core/fpdfapi/render/cpdf_imagecacheentry.h index e4481e0d73..d11fe94c29 100644 --- a/core/fpdfapi/render/cpdf_imagecacheentry.h +++ b/core/fpdfapi/render/cpdf_imagecacheentry.h @@ -25,16 +25,6 @@ class CPDF_ImageCacheEntry { ~CPDF_ImageCacheEntry(); void Reset(const CFX_DIBitmap* pBitmap); - bool GetCachedBitmap(CFX_DIBSource*& pBitmap, - CFX_DIBSource*& pMask, - uint32_t& MatteColor, - CPDF_Dictionary* pPageResources, - bool bStdCS, - uint32_t GroupFamily, - bool bLoadMask, - CPDF_RenderStatus* pRenderStatus, - int32_t downsampleWidth, - int32_t downsampleHeight); uint32_t EstimateSize() const { return m_dwCacheSize; } uint32_t GetTimeCount() const { return m_dwTimeCount; } CPDF_Stream* GetStream() const { return m_pStream; } @@ -56,6 +46,7 @@ class CPDF_ImageCacheEntry { private: void ContinueGetCachedBitmap(); + void CalcSize(); CPDF_RenderStatus* m_pRenderStatus; CPDF_Document* m_pDocument; @@ -65,7 +56,6 @@ class CPDF_ImageCacheEntry { std::unique_ptr m_pCachedBitmap; std::unique_ptr m_pCachedMask; uint32_t m_dwCacheSize; - void CalcSize(); }; #endif // CORE_FPDFAPI_RENDER_CPDF_IMAGECACHEENTRY_H_ diff --git a/core/fxge/dib/fx_dib_engine_unittest.cpp b/core/fxge/dib/fx_dib_engine_unittest.cpp index dff53483b2..705d761ca8 100644 --- a/core/fxge/dib/fx_dib_engine_unittest.cpp +++ b/core/fxge/dib/fx_dib_engine_unittest.cpp @@ -24,8 +24,7 @@ TEST(CStretchEngine, OverflowInCtor) { std::unique_ptr stream = pdfium::MakeUnique(nullptr, 0, std::move(dict_obj)); CPDF_DIBSource dib_source; - dib_source.Load(nullptr, stream.get(), nullptr, nullptr, nullptr, nullptr, - false, 0, false); + dib_source.Load(nullptr, stream.get()); CStretchEngine engine(nullptr, FXDIB_8bppRgb, 500, 500, clip_rect, &dib_source, 0); EXPECT_EQ(FXDIB_INTERPOL, engine.m_Flags); -- cgit v1.2.3