From b048f791a15f2da781a01eba5b09eb9d389f9c11 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Tue, 4 Aug 2015 12:19:10 -0700 Subject: clang-format all pdfium code. No behavior change. Generated by: find . -name '*.cpp' -o -name '*.h' | \ grep -E -v 'third_party|thirdparties|lpng_v163' | \ xargs ../../buildtools/mac/clang-format -i See thread "tabs vs spaces" on pdfium@googlegroups.com for discussion. BUG=none R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1265503005 . --- core/src/fpdfapi/fpdf_page/fpdf_page_doc.cpp | 1036 +++++++++++++------------- 1 file changed, 507 insertions(+), 529 deletions(-) (limited to 'core/src/fpdfapi/fpdf_page/fpdf_page_doc.cpp') diff --git a/core/src/fpdfapi/fpdf_page/fpdf_page_doc.cpp b/core/src/fpdfapi/fpdf_page/fpdf_page_doc.cpp index 05233a12a4..74e33b56a9 100644 --- a/core/src/fpdfapi/fpdf_page/fpdf_page_doc.cpp +++ b/core/src/fpdfapi/fpdf_page/fpdf_page_doc.cpp @@ -10,628 +10,606 @@ #include "../fpdf_font/font_int.h" #include "pageint.h" -class CPDF_PageModule : public IPDF_PageModule -{ -public: - CPDF_PageModule() - : m_StockGrayCS(nullptr, PDFCS_DEVICEGRAY), - m_StockRGBCS(nullptr, PDFCS_DEVICERGB), - m_StockCMYKCS(nullptr, PDFCS_DEVICECMYK), - m_StockPatternCS(nullptr) {} - -private: - ~CPDF_PageModule() override {} - - CPDF_DocPageData* CreateDocData(CPDF_Document* pDoc) override - { - return new CPDF_DocPageData(pDoc); - } - - void ReleaseDoc(CPDF_Document* pDoc) override; - void ClearDoc(CPDF_Document* pDoc) override; - - CPDF_FontGlobals* GetFontGlobals() override - { - return &m_FontGlobals; - } - - void ClearStockFont(CPDF_Document* pDoc) override - { - m_FontGlobals.Clear(pDoc); - } - - CPDF_ColorSpace* GetStockCS(int family) override; - void NotifyCJKAvailable() override; - - CPDF_FontGlobals m_FontGlobals; - CPDF_DeviceCS m_StockGrayCS; - CPDF_DeviceCS m_StockRGBCS; - CPDF_DeviceCS m_StockCMYKCS; - CPDF_PatternCS m_StockPatternCS; +class CPDF_PageModule : public IPDF_PageModule { + public: + CPDF_PageModule() + : m_StockGrayCS(nullptr, PDFCS_DEVICEGRAY), + m_StockRGBCS(nullptr, PDFCS_DEVICERGB), + m_StockCMYKCS(nullptr, PDFCS_DEVICECMYK), + m_StockPatternCS(nullptr) {} + + private: + ~CPDF_PageModule() override {} + + CPDF_DocPageData* CreateDocData(CPDF_Document* pDoc) override { + return new CPDF_DocPageData(pDoc); + } + + void ReleaseDoc(CPDF_Document* pDoc) override; + void ClearDoc(CPDF_Document* pDoc) override; + + CPDF_FontGlobals* GetFontGlobals() override { return &m_FontGlobals; } + + void ClearStockFont(CPDF_Document* pDoc) override { + m_FontGlobals.Clear(pDoc); + } + + CPDF_ColorSpace* GetStockCS(int family) override; + void NotifyCJKAvailable() override; + + CPDF_FontGlobals m_FontGlobals; + CPDF_DeviceCS m_StockGrayCS; + CPDF_DeviceCS m_StockRGBCS; + CPDF_DeviceCS m_StockCMYKCS; + CPDF_PatternCS m_StockPatternCS; }; -CPDF_ColorSpace* CPDF_PageModule::GetStockCS(int family) -{ - if (family == PDFCS_DEVICEGRAY) { - return &m_StockGrayCS; - } - if (family == PDFCS_DEVICERGB) { - return &m_StockRGBCS; - } - if (family == PDFCS_DEVICECMYK) { - return &m_StockCMYKCS; - } - if (family == PDFCS_PATTERN) { - return &m_StockPatternCS; - } - return NULL; +CPDF_ColorSpace* CPDF_PageModule::GetStockCS(int family) { + if (family == PDFCS_DEVICEGRAY) { + return &m_StockGrayCS; + } + if (family == PDFCS_DEVICERGB) { + return &m_StockRGBCS; + } + if (family == PDFCS_DEVICECMYK) { + return &m_StockCMYKCS; + } + if (family == PDFCS_PATTERN) { + return &m_StockPatternCS; + } + return NULL; } -void CPDF_ModuleMgr::InitPageModule() -{ - m_pPageModule.reset(new CPDF_PageModule); +void CPDF_ModuleMgr::InitPageModule() { + m_pPageModule.reset(new CPDF_PageModule); } -void CPDF_PageModule::ReleaseDoc(CPDF_Document* pDoc) -{ - delete pDoc->GetPageData(); +void CPDF_PageModule::ReleaseDoc(CPDF_Document* pDoc) { + delete pDoc->GetPageData(); } -void CPDF_PageModule::ClearDoc(CPDF_Document* pDoc) -{ - pDoc->GetPageData()->Clear(FALSE); +void CPDF_PageModule::ClearDoc(CPDF_Document* pDoc) { + pDoc->GetPageData()->Clear(FALSE); } -void CPDF_PageModule::NotifyCJKAvailable() -{ - m_FontGlobals.m_CMapManager.ReloadAll(); +void CPDF_PageModule::NotifyCJKAvailable() { + m_FontGlobals.m_CMapManager.ReloadAll(); } -CPDF_Font* CPDF_Document::LoadFont(CPDF_Dictionary* pFontDict) -{ - ASSERT(pFontDict); - return GetValidatePageData()->GetFont(pFontDict, FALSE); +CPDF_Font* CPDF_Document::LoadFont(CPDF_Dictionary* pFontDict) { + ASSERT(pFontDict); + return GetValidatePageData()->GetFont(pFontDict, FALSE); } -CPDF_StreamAcc* CPDF_Document::LoadFontFile(CPDF_Stream* pStream) -{ - return GetValidatePageData()->GetFontFileStreamAcc(pStream); +CPDF_StreamAcc* CPDF_Document::LoadFontFile(CPDF_Stream* pStream) { + return GetValidatePageData()->GetFontFileStreamAcc(pStream); } CPDF_ColorSpace* _CSFromName(const CFX_ByteString& name); -CPDF_ColorSpace* CPDF_Document::LoadColorSpace(CPDF_Object* pCSObj, CPDF_Dictionary* pResources) -{ - return GetValidatePageData()->GetColorSpace(pCSObj, pResources); +CPDF_ColorSpace* CPDF_Document::LoadColorSpace(CPDF_Object* pCSObj, + CPDF_Dictionary* pResources) { + return GetValidatePageData()->GetColorSpace(pCSObj, pResources); } -CPDF_Pattern* CPDF_Document::LoadPattern(CPDF_Object* pPatternObj, FX_BOOL bShading, const CFX_AffineMatrix* matrix) -{ - return GetValidatePageData()->GetPattern(pPatternObj, bShading, matrix); +CPDF_Pattern* CPDF_Document::LoadPattern(CPDF_Object* pPatternObj, + FX_BOOL bShading, + const CFX_AffineMatrix* matrix) { + return GetValidatePageData()->GetPattern(pPatternObj, bShading, matrix); } -CPDF_IccProfile* CPDF_Document::LoadIccProfile(CPDF_Stream* pStream) -{ - return GetValidatePageData()->GetIccProfile(pStream); +CPDF_IccProfile* CPDF_Document::LoadIccProfile(CPDF_Stream* pStream) { + return GetValidatePageData()->GetIccProfile(pStream); } -CPDF_Image* CPDF_Document::LoadImageF(CPDF_Object* pObj) -{ - if (!pObj) { - return NULL; - } - FXSYS_assert(pObj->GetObjNum()); - return GetValidatePageData()->GetImage(pObj); +CPDF_Image* CPDF_Document::LoadImageF(CPDF_Object* pObj) { + if (!pObj) { + return NULL; + } + FXSYS_assert(pObj->GetObjNum()); + return GetValidatePageData()->GetImage(pObj); } -void CPDF_Document::RemoveColorSpaceFromPageData(CPDF_Object* pCSObj) -{ - if (!pCSObj) { - return; - } - GetPageData()->ReleaseColorSpace(pCSObj); +void CPDF_Document::RemoveColorSpaceFromPageData(CPDF_Object* pCSObj) { + if (!pCSObj) { + return; + } + GetPageData()->ReleaseColorSpace(pCSObj); } CPDF_DocPageData::CPDF_DocPageData(CPDF_Document* pPDFDoc) - : m_pPDFDoc(pPDFDoc), - m_bForceClear(FALSE) -{ -} + : m_pPDFDoc(pPDFDoc), m_bForceClear(FALSE) {} -CPDF_DocPageData::~CPDF_DocPageData() -{ - Clear(FALSE); - Clear(TRUE); +CPDF_DocPageData::~CPDF_DocPageData() { + Clear(FALSE); + Clear(TRUE); - for (auto& it : m_PatternMap) - delete it.second; - m_PatternMap.clear(); + for (auto& it : m_PatternMap) + delete it.second; + m_PatternMap.clear(); - for (auto& it : m_FontMap) - delete it.second; - m_FontMap.clear(); + for (auto& it : m_FontMap) + delete it.second; + m_FontMap.clear(); - for (auto& it : m_ColorSpaceMap) - delete it.second; - m_ColorSpaceMap.clear(); + for (auto& it : m_ColorSpaceMap) + delete it.second; + m_ColorSpaceMap.clear(); } -void CPDF_DocPageData::Clear(FX_BOOL bForceRelease) -{ - m_bForceClear = bForceRelease; - - for (auto& it : m_PatternMap) { - CPDF_CountedPattern* ptData = it.second; - if (!ptData->get()) - continue; - - if (bForceRelease || ptData->use_count() < 2) { - ptData->get()->SetForceClear(bForceRelease); - ptData->clear(); - } - } - - for (auto& it : m_FontMap) { - CPDF_CountedFont* fontData = it.second; - if (!fontData->get()) - continue; - - if (bForceRelease || fontData->use_count() < 2) { - fontData->clear(); - } - } - - for (auto& it : m_ColorSpaceMap) { - CPDF_CountedColorSpace* csData = it.second; - if (!csData->get()) - continue; - - if (bForceRelease || csData->use_count() < 2) { - csData->get()->ReleaseCS(); - csData->reset(nullptr); +void CPDF_DocPageData::Clear(FX_BOOL bForceRelease) { + m_bForceClear = bForceRelease; + + for (auto& it : m_PatternMap) { + CPDF_CountedPattern* ptData = it.second; + if (!ptData->get()) + continue; + + if (bForceRelease || ptData->use_count() < 2) { + ptData->get()->SetForceClear(bForceRelease); + ptData->clear(); + } + } + + for (auto& it : m_FontMap) { + CPDF_CountedFont* fontData = it.second; + if (!fontData->get()) + continue; + + if (bForceRelease || fontData->use_count() < 2) { + fontData->clear(); + } + } + + for (auto& it : m_ColorSpaceMap) { + CPDF_CountedColorSpace* csData = it.second; + if (!csData->get()) + continue; + + if (bForceRelease || csData->use_count() < 2) { + csData->get()->ReleaseCS(); + csData->reset(nullptr); + } + } + + for (auto it = m_IccProfileMap.begin(); it != m_IccProfileMap.end();) { + auto curr_it = it++; + CPDF_CountedIccProfile* ipData = curr_it->second; + if (!ipData->get()) + continue; + + if (bForceRelease || ipData->use_count() < 2) { + CPDF_Stream* ipKey = curr_it->first; + FX_POSITION pos2 = m_HashProfileMap.GetStartPosition(); + while (pos2) { + CFX_ByteString bsKey; + CPDF_Stream* pFindStream = nullptr; + m_HashProfileMap.GetNextAssoc(pos2, bsKey, (void*&)pFindStream); + if (ipKey == pFindStream) { + m_HashProfileMap.RemoveKey(bsKey); + break; } - } - - for (auto it = m_IccProfileMap.begin(); it != m_IccProfileMap.end();) { - auto curr_it = it++; - CPDF_CountedIccProfile* ipData = curr_it->second; - if (!ipData->get()) - continue; - - if (bForceRelease || ipData->use_count() < 2) { - CPDF_Stream* ipKey = curr_it->first; - FX_POSITION pos2 = m_HashProfileMap.GetStartPosition(); - while (pos2) { - CFX_ByteString bsKey; - CPDF_Stream* pFindStream = nullptr; - m_HashProfileMap.GetNextAssoc(pos2, bsKey, (void*&)pFindStream); - if (ipKey == pFindStream) { - m_HashProfileMap.RemoveKey(bsKey); - break; - } - } - delete ipData->get(); - delete ipData; - m_IccProfileMap.erase(curr_it); - } - } - - for (auto it = m_FontFileMap.begin(); it != m_FontFileMap.end();) { - auto curr_it = it++; - CPDF_CountedStreamAcc* ftData = curr_it->second; - if (!ftData->get()) - continue; - - if (bForceRelease || ftData->use_count() < 2) { - delete ftData->get(); - delete ftData; - m_FontFileMap.erase(curr_it); - } - } - - for (auto it = m_ImageMap.begin(); it != m_ImageMap.end();) { - auto curr_it = it++; - CPDF_CountedImage* imageData = curr_it->second; - if (!imageData->get()) - continue; - - if (bForceRelease || imageData->use_count() < 2) { - delete imageData->get(); - delete imageData; - m_ImageMap.erase(curr_it); - } - } + } + delete ipData->get(); + delete ipData; + m_IccProfileMap.erase(curr_it); + } + } + + for (auto it = m_FontFileMap.begin(); it != m_FontFileMap.end();) { + auto curr_it = it++; + CPDF_CountedStreamAcc* ftData = curr_it->second; + if (!ftData->get()) + continue; + + if (bForceRelease || ftData->use_count() < 2) { + delete ftData->get(); + delete ftData; + m_FontFileMap.erase(curr_it); + } + } + + for (auto it = m_ImageMap.begin(); it != m_ImageMap.end();) { + auto curr_it = it++; + CPDF_CountedImage* imageData = curr_it->second; + if (!imageData->get()) + continue; + + if (bForceRelease || imageData->use_count() < 2) { + delete imageData->get(); + delete imageData; + m_ImageMap.erase(curr_it); + } + } } -CPDF_Font* CPDF_DocPageData::GetFont(CPDF_Dictionary* pFontDict, FX_BOOL findOnly) -{ - if (!pFontDict) { - return NULL; - } - if (findOnly) { - auto it = m_FontMap.find(pFontDict); - if (it != m_FontMap.end() && it->second->get()) { - return it->second->AddRef(); - } - return nullptr; - } - - CPDF_CountedFont* fontData = nullptr; +CPDF_Font* CPDF_DocPageData::GetFont(CPDF_Dictionary* pFontDict, + FX_BOOL findOnly) { + if (!pFontDict) { + return NULL; + } + if (findOnly) { auto it = m_FontMap.find(pFontDict); - if (it != m_FontMap.end()) { - fontData = it->second; - if (fontData->get()) { - return fontData->AddRef(); - } + if (it != m_FontMap.end() && it->second->get()) { + return it->second->AddRef(); } + return nullptr; + } - CPDF_Font* pFont = CPDF_Font::CreateFontF(m_pPDFDoc, pFontDict); - if (!pFont) { - return nullptr; - } - if (!fontData) { - fontData = new CPDF_CountedFont(pFont); - m_FontMap[pFontDict] = fontData; - } else { - fontData->reset(pFont); + CPDF_CountedFont* fontData = nullptr; + auto it = m_FontMap.find(pFontDict); + if (it != m_FontMap.end()) { + fontData = it->second; + if (fontData->get()) { + return fontData->AddRef(); } - return fontData->AddRef(); + } + + CPDF_Font* pFont = CPDF_Font::CreateFontF(m_pPDFDoc, pFontDict); + if (!pFont) { + return nullptr; + } + if (!fontData) { + fontData = new CPDF_CountedFont(pFont); + m_FontMap[pFontDict] = fontData; + } else { + fontData->reset(pFont); + } + return fontData->AddRef(); } -CPDF_Font* CPDF_DocPageData::GetStandardFont(const CFX_ByteStringC& fontName, CPDF_FontEncoding* pEncoding) -{ - if (fontName.IsEmpty()) - return nullptr; - - for (auto& it : m_FontMap) { - CPDF_CountedFont* fontData = it.second; - CPDF_Font* pFont = fontData->get(); - if (!pFont) - continue; - if (pFont->GetBaseFont() != fontName) - continue; - if (pFont->IsEmbedded()) - continue; - if (pFont->GetFontType() != PDFFONT_TYPE1) - continue; - if (pFont->GetFontDict()->KeyExist(FX_BSTRC("Widths"))) - continue; - - CPDF_Type1Font* pT1Font = pFont->GetType1Font(); - if (pEncoding && !pT1Font->GetEncoding()->IsIdentical(pEncoding)) - continue; - - return fontData->AddRef(); - } +CPDF_Font* CPDF_DocPageData::GetStandardFont(const CFX_ByteStringC& fontName, + CPDF_FontEncoding* pEncoding) { + if (fontName.IsEmpty()) + return nullptr; + + for (auto& it : m_FontMap) { + CPDF_CountedFont* fontData = it.second; + CPDF_Font* pFont = fontData->get(); + if (!pFont) + continue; + if (pFont->GetBaseFont() != fontName) + continue; + if (pFont->IsEmbedded()) + continue; + if (pFont->GetFontType() != PDFFONT_TYPE1) + continue; + if (pFont->GetFontDict()->KeyExist(FX_BSTRC("Widths"))) + continue; + + CPDF_Type1Font* pT1Font = pFont->GetType1Font(); + if (pEncoding && !pT1Font->GetEncoding()->IsIdentical(pEncoding)) + continue; - CPDF_Dictionary* pDict = new CPDF_Dictionary; - pDict->SetAtName(FX_BSTRC("Type"), FX_BSTRC("Font")); - pDict->SetAtName(FX_BSTRC("Subtype"), FX_BSTRC("Type1")); - pDict->SetAtName(FX_BSTRC("BaseFont"), fontName); - if (pEncoding) { - pDict->SetAt(FX_BSTRC("Encoding"), pEncoding->Realize()); - } - m_pPDFDoc->AddIndirectObject(pDict); - CPDF_Font* pFont = CPDF_Font::CreateFontF(m_pPDFDoc, pDict); - if (!pFont) { - return nullptr; - } - CPDF_CountedFont* fontData = new CPDF_CountedFont(pFont); - m_FontMap[pDict] = fontData; return fontData->AddRef(); + } + + CPDF_Dictionary* pDict = new CPDF_Dictionary; + pDict->SetAtName(FX_BSTRC("Type"), FX_BSTRC("Font")); + pDict->SetAtName(FX_BSTRC("Subtype"), FX_BSTRC("Type1")); + pDict->SetAtName(FX_BSTRC("BaseFont"), fontName); + if (pEncoding) { + pDict->SetAt(FX_BSTRC("Encoding"), pEncoding->Realize()); + } + m_pPDFDoc->AddIndirectObject(pDict); + CPDF_Font* pFont = CPDF_Font::CreateFontF(m_pPDFDoc, pDict); + if (!pFont) { + return nullptr; + } + CPDF_CountedFont* fontData = new CPDF_CountedFont(pFont); + m_FontMap[pDict] = fontData; + return fontData->AddRef(); } -void CPDF_DocPageData::ReleaseFont(CPDF_Dictionary* pFontDict) -{ - if (!pFontDict) - return; +void CPDF_DocPageData::ReleaseFont(CPDF_Dictionary* pFontDict) { + if (!pFontDict) + return; - auto it = m_FontMap.find(pFontDict); - if (it == m_FontMap.end()) - return; + auto it = m_FontMap.find(pFontDict); + if (it == m_FontMap.end()) + return; - CPDF_CountedFont* fontData = it->second; - if (fontData->get()) { - fontData->RemoveRef(); - if (fontData->use_count() == 0) { - fontData->clear(); - } + CPDF_CountedFont* fontData = it->second; + if (fontData->get()) { + fontData->RemoveRef(); + if (fontData->use_count() == 0) { + fontData->clear(); } + } } -CPDF_ColorSpace* CPDF_DocPageData::GetColorSpace(CPDF_Object* pCSObj, CPDF_Dictionary* pResources) -{ - if (!pCSObj) { - return NULL; - } - if (pCSObj->GetType() == PDFOBJ_NAME) { - CFX_ByteString name = pCSObj->GetConstString(); - CPDF_ColorSpace* pCS = _CSFromName(name); - if (!pCS && pResources) { - CPDF_Dictionary* pList = pResources->GetDict(FX_BSTRC("ColorSpace")); - if (pList) { - pCSObj = pList->GetElementValue(name); - return GetColorSpace(pCSObj, NULL); - } - } - if (pCS == NULL || pResources == NULL) { - return pCS; - } - CPDF_Dictionary* pColorSpaces = pResources->GetDict(FX_BSTRC("ColorSpace")); - if (pColorSpaces == NULL) { - return pCS; - } - CPDF_Object* pDefaultCS = NULL; - switch (pCS->GetFamily()) { - case PDFCS_DEVICERGB: - pDefaultCS = pColorSpaces->GetElementValue(FX_BSTRC("DefaultRGB")); - break; - case PDFCS_DEVICEGRAY: - pDefaultCS = pColorSpaces->GetElementValue(FX_BSTRC("DefaultGray")); - break; - case PDFCS_DEVICECMYK: - pDefaultCS = pColorSpaces->GetElementValue(FX_BSTRC("DefaultCMYK")); - break; - } - if (pDefaultCS == NULL) { - return pCS; - } - return GetColorSpace(pDefaultCS, NULL); - } +CPDF_ColorSpace* CPDF_DocPageData::GetColorSpace(CPDF_Object* pCSObj, + CPDF_Dictionary* pResources) { + if (!pCSObj) { + return NULL; + } + if (pCSObj->GetType() == PDFOBJ_NAME) { + CFX_ByteString name = pCSObj->GetConstString(); + CPDF_ColorSpace* pCS = _CSFromName(name); + if (!pCS && pResources) { + CPDF_Dictionary* pList = pResources->GetDict(FX_BSTRC("ColorSpace")); + if (pList) { + pCSObj = pList->GetElementValue(name); + return GetColorSpace(pCSObj, NULL); + } + } + if (pCS == NULL || pResources == NULL) { + return pCS; + } + CPDF_Dictionary* pColorSpaces = pResources->GetDict(FX_BSTRC("ColorSpace")); + if (pColorSpaces == NULL) { + return pCS; + } + CPDF_Object* pDefaultCS = NULL; + switch (pCS->GetFamily()) { + case PDFCS_DEVICERGB: + pDefaultCS = pColorSpaces->GetElementValue(FX_BSTRC("DefaultRGB")); + break; + case PDFCS_DEVICEGRAY: + pDefaultCS = pColorSpaces->GetElementValue(FX_BSTRC("DefaultGray")); + break; + case PDFCS_DEVICECMYK: + pDefaultCS = pColorSpaces->GetElementValue(FX_BSTRC("DefaultCMYK")); + break; + } + if (pDefaultCS == NULL) { + return pCS; + } + return GetColorSpace(pDefaultCS, NULL); + } + + if (pCSObj->GetType() != PDFOBJ_ARRAY) + return nullptr; + CPDF_Array* pArray = (CPDF_Array*)pCSObj; + if (pArray->GetCount() == 0) + return nullptr; + if (pArray->GetCount() == 1) + return GetColorSpace(pArray->GetElementValue(0), pResources); - if (pCSObj->GetType() != PDFOBJ_ARRAY) - return nullptr; - CPDF_Array* pArray = (CPDF_Array*)pCSObj; - if (pArray->GetCount() == 0) - return nullptr; - if (pArray->GetCount() == 1) - return GetColorSpace(pArray->GetElementValue(0), pResources); - - CPDF_CountedColorSpace* csData = nullptr; - auto it = m_ColorSpaceMap.find(pCSObj); - if (it != m_ColorSpaceMap.end()) { - csData = it->second; - if (csData->get()) { - return csData->AddRef(); - } + CPDF_CountedColorSpace* csData = nullptr; + auto it = m_ColorSpaceMap.find(pCSObj); + if (it != m_ColorSpaceMap.end()) { + csData = it->second; + if (csData->get()) { + return csData->AddRef(); } + } - CPDF_ColorSpace* pCS = CPDF_ColorSpace::Load(m_pPDFDoc, pArray); - if (!pCS) - return nullptr; + CPDF_ColorSpace* pCS = CPDF_ColorSpace::Load(m_pPDFDoc, pArray); + if (!pCS) + return nullptr; - if (!csData) { - csData = new CPDF_CountedColorSpace(pCS); - m_ColorSpaceMap[pCSObj] = csData; - } else { - csData->reset(pCS); - } - return csData->AddRef(); + if (!csData) { + csData = new CPDF_CountedColorSpace(pCS); + m_ColorSpaceMap[pCSObj] = csData; + } else { + csData->reset(pCS); + } + return csData->AddRef(); } -CPDF_ColorSpace* CPDF_DocPageData::GetCopiedColorSpace(CPDF_Object* pCSObj) -{ - if (!pCSObj) - return nullptr; +CPDF_ColorSpace* CPDF_DocPageData::GetCopiedColorSpace(CPDF_Object* pCSObj) { + if (!pCSObj) + return nullptr; - auto it = m_ColorSpaceMap.find(pCSObj); - if (it != m_ColorSpaceMap.end()) - return it->second->AddRef(); + auto it = m_ColorSpaceMap.find(pCSObj); + if (it != m_ColorSpaceMap.end()) + return it->second->AddRef(); - return nullptr; + return nullptr; } -void CPDF_DocPageData::ReleaseColorSpace(CPDF_Object* pColorSpace) -{ - if (!pColorSpace) - return; +void CPDF_DocPageData::ReleaseColorSpace(CPDF_Object* pColorSpace) { + if (!pColorSpace) + return; - auto it = m_ColorSpaceMap.find(pColorSpace); - if (it == m_ColorSpaceMap.end()) - return; + auto it = m_ColorSpaceMap.find(pColorSpace); + if (it == m_ColorSpaceMap.end()) + return; - CPDF_CountedColorSpace* csData = it->second; - if (csData->get()) { - csData->RemoveRef(); - if (csData->use_count() == 0) { - csData->get()->ReleaseCS(); - csData->reset(nullptr); - } + CPDF_CountedColorSpace* csData = it->second; + if (csData->get()) { + csData->RemoveRef(); + if (csData->use_count() == 0) { + csData->get()->ReleaseCS(); + csData->reset(nullptr); } + } } -CPDF_Pattern* CPDF_DocPageData::GetPattern(CPDF_Object* pPatternObj, FX_BOOL bShading, const CFX_AffineMatrix* matrix) -{ - if (!pPatternObj) - return nullptr; - - CPDF_CountedPattern* ptData = nullptr; - auto it = m_PatternMap.find(pPatternObj); - if (it != m_PatternMap.end()) { - ptData = it->second; - if (ptData->get()) { - return ptData->AddRef(); - } - } - CPDF_Pattern* pPattern = nullptr; - if (bShading) { - pPattern = new CPDF_ShadingPattern(m_pPDFDoc, pPatternObj, bShading, matrix); - } else { - CPDF_Dictionary* pDict = pPatternObj ? pPatternObj->GetDict() : nullptr; - if (pDict) { - int type = pDict->GetInteger(FX_BSTRC("PatternType")); - if (type == 1) { - pPattern = new CPDF_TilingPattern(m_pPDFDoc, pPatternObj, matrix); - } else if (type == 2) { - pPattern = new CPDF_ShadingPattern(m_pPDFDoc, pPatternObj, FALSE, matrix); - } - } - } - if (!pPattern) - return nullptr; - - if (!ptData) { - ptData = new CPDF_CountedPattern(pPattern); - m_PatternMap[pPatternObj] = ptData; - } else { - ptData->reset(pPattern); - } - return ptData->AddRef(); +CPDF_Pattern* CPDF_DocPageData::GetPattern(CPDF_Object* pPatternObj, + FX_BOOL bShading, + const CFX_AffineMatrix* matrix) { + if (!pPatternObj) + return nullptr; + + CPDF_CountedPattern* ptData = nullptr; + auto it = m_PatternMap.find(pPatternObj); + if (it != m_PatternMap.end()) { + ptData = it->second; + if (ptData->get()) { + return ptData->AddRef(); + } + } + CPDF_Pattern* pPattern = nullptr; + if (bShading) { + pPattern = + new CPDF_ShadingPattern(m_pPDFDoc, pPatternObj, bShading, matrix); + } else { + CPDF_Dictionary* pDict = pPatternObj ? pPatternObj->GetDict() : nullptr; + if (pDict) { + int type = pDict->GetInteger(FX_BSTRC("PatternType")); + if (type == 1) { + pPattern = new CPDF_TilingPattern(m_pPDFDoc, pPatternObj, matrix); + } else if (type == 2) { + pPattern = + new CPDF_ShadingPattern(m_pPDFDoc, pPatternObj, FALSE, matrix); + } + } + } + if (!pPattern) + return nullptr; + + if (!ptData) { + ptData = new CPDF_CountedPattern(pPattern); + m_PatternMap[pPatternObj] = ptData; + } else { + ptData->reset(pPattern); + } + return ptData->AddRef(); } -void CPDF_DocPageData::ReleasePattern(CPDF_Object* pPatternObj) -{ - if (!pPatternObj) - return; +void CPDF_DocPageData::ReleasePattern(CPDF_Object* pPatternObj) { + if (!pPatternObj) + return; - auto it = m_PatternMap.find(pPatternObj); - if (it == m_PatternMap.end()) - return; + auto it = m_PatternMap.find(pPatternObj); + if (it == m_PatternMap.end()) + return; - CPDF_CountedPattern* ptData = it->second; - if (ptData->get()) { - ptData->RemoveRef(); - if (ptData->use_count() == 0) { - ptData->clear(); - } + CPDF_CountedPattern* ptData = it->second; + if (ptData->get()) { + ptData->RemoveRef(); + if (ptData->use_count() == 0) { + ptData->clear(); } + } } -CPDF_Image* CPDF_DocPageData::GetImage(CPDF_Object* pImageStream) -{ - if (!pImageStream) - return nullptr; +CPDF_Image* CPDF_DocPageData::GetImage(CPDF_Object* pImageStream) { + if (!pImageStream) + return nullptr; - const FX_DWORD dwImageObjNum = pImageStream->GetObjNum(); - auto it = m_ImageMap.find(dwImageObjNum); - if (it != m_ImageMap.end()) { - return it->second->AddRef(); - } + const FX_DWORD dwImageObjNum = pImageStream->GetObjNum(); + auto it = m_ImageMap.find(dwImageObjNum); + if (it != m_ImageMap.end()) { + return it->second->AddRef(); + } - CPDF_Image* pImage = new CPDF_Image(m_pPDFDoc); - pImage->LoadImageF((CPDF_Stream*)pImageStream, FALSE); + CPDF_Image* pImage = new CPDF_Image(m_pPDFDoc); + pImage->LoadImageF((CPDF_Stream*)pImageStream, FALSE); - CPDF_CountedImage* imageData = new CPDF_CountedImage(pImage); - m_ImageMap[dwImageObjNum] = imageData; - return imageData->AddRef(); + CPDF_CountedImage* imageData = new CPDF_CountedImage(pImage); + m_ImageMap[dwImageObjNum] = imageData; + return imageData->AddRef(); } -void CPDF_DocPageData::ReleaseImage(CPDF_Object* pImageStream) -{ - if (!pImageStream || !pImageStream->GetObjNum()) - return; +void CPDF_DocPageData::ReleaseImage(CPDF_Object* pImageStream) { + if (!pImageStream || !pImageStream->GetObjNum()) + return; - auto it = m_ImageMap.find(pImageStream->GetObjNum()); - if (it == m_ImageMap.end()) - return; + auto it = m_ImageMap.find(pImageStream->GetObjNum()); + if (it == m_ImageMap.end()) + return; - CPDF_CountedImage* image = it->second; - if (!image) - return; + CPDF_CountedImage* image = it->second; + if (!image) + return; - image->RemoveRef(); - if (image->use_count() == 0) { - delete image->get(); - delete image; - m_ImageMap.erase(it); - } + image->RemoveRef(); + if (image->use_count() == 0) { + delete image->get(); + delete image; + m_ImageMap.erase(it); + } } -CPDF_IccProfile* CPDF_DocPageData::GetIccProfile(CPDF_Stream* pIccProfileStream) -{ - if (!pIccProfileStream) - return NULL; - - auto it = m_IccProfileMap.find(pIccProfileStream); - if (it != m_IccProfileMap.end()) { - return it->second->AddRef(); - } +CPDF_IccProfile* CPDF_DocPageData::GetIccProfile( + CPDF_Stream* pIccProfileStream) { + if (!pIccProfileStream) + return NULL; - CPDF_StreamAcc stream; - stream.LoadAllData(pIccProfileStream, FALSE); - uint8_t digest[20]; - CPDF_Stream* pCopiedStream = nullptr; - CRYPT_SHA1Generate(stream.GetData(), stream.GetSize(), digest); - if (m_HashProfileMap.Lookup(CFX_ByteStringC(digest, 20), (void*&)pCopiedStream)) { - auto it_copied_stream = m_IccProfileMap.find(pCopiedStream); - return it_copied_stream->second->AddRef(); - } - CPDF_IccProfile* pProfile = new CPDF_IccProfile(stream.GetData(), stream.GetSize()); - CPDF_CountedIccProfile* ipData = new CPDF_CountedIccProfile(pProfile); - m_IccProfileMap[pIccProfileStream] = ipData; - m_HashProfileMap.SetAt(CFX_ByteStringC(digest, 20), pIccProfileStream); - return ipData->AddRef(); + auto it = m_IccProfileMap.find(pIccProfileStream); + if (it != m_IccProfileMap.end()) { + return it->second->AddRef(); + } + + CPDF_StreamAcc stream; + stream.LoadAllData(pIccProfileStream, FALSE); + uint8_t digest[20]; + CPDF_Stream* pCopiedStream = nullptr; + CRYPT_SHA1Generate(stream.GetData(), stream.GetSize(), digest); + if (m_HashProfileMap.Lookup(CFX_ByteStringC(digest, 20), + (void*&)pCopiedStream)) { + auto it_copied_stream = m_IccProfileMap.find(pCopiedStream); + return it_copied_stream->second->AddRef(); + } + CPDF_IccProfile* pProfile = + new CPDF_IccProfile(stream.GetData(), stream.GetSize()); + CPDF_CountedIccProfile* ipData = new CPDF_CountedIccProfile(pProfile); + m_IccProfileMap[pIccProfileStream] = ipData; + m_HashProfileMap.SetAt(CFX_ByteStringC(digest, 20), pIccProfileStream); + return ipData->AddRef(); } -void CPDF_DocPageData::ReleaseIccProfile(CPDF_IccProfile* pIccProfile) -{ - ASSERT(pIccProfile); - - for (auto it = m_IccProfileMap.begin(); it != m_IccProfileMap.end(); ++it) { - CPDF_CountedIccProfile* profile = it->second; - if (profile->get() != pIccProfile) - continue; - - profile->RemoveRef(); - if (profile->use_count() == 0) { - delete profile->get(); - delete profile; - m_IccProfileMap.erase(it); - return; - } +void CPDF_DocPageData::ReleaseIccProfile(CPDF_IccProfile* pIccProfile) { + ASSERT(pIccProfile); + + for (auto it = m_IccProfileMap.begin(); it != m_IccProfileMap.end(); ++it) { + CPDF_CountedIccProfile* profile = it->second; + if (profile->get() != pIccProfile) + continue; + + profile->RemoveRef(); + if (profile->use_count() == 0) { + delete profile->get(); + delete profile; + m_IccProfileMap.erase(it); + return; } + } } -CPDF_StreamAcc* CPDF_DocPageData::GetFontFileStreamAcc(CPDF_Stream* pFontStream) -{ - ASSERT(pFontStream); +CPDF_StreamAcc* CPDF_DocPageData::GetFontFileStreamAcc( + CPDF_Stream* pFontStream) { + ASSERT(pFontStream); - auto it = m_FontFileMap.find(pFontStream); - if (it != m_FontFileMap.end()) - return it->second->AddRef(); + auto it = m_FontFileMap.find(pFontStream); + if (it != m_FontFileMap.end()) + return it->second->AddRef(); - CPDF_Dictionary* pFontDict = pFontStream->GetDict(); - int32_t org_size = pFontDict->GetInteger(FX_BSTRC("Length1")) + - pFontDict->GetInteger(FX_BSTRC("Length2")) + - pFontDict->GetInteger(FX_BSTRC("Length3")); - if (org_size < 0) - org_size = 0; + CPDF_Dictionary* pFontDict = pFontStream->GetDict(); + int32_t org_size = pFontDict->GetInteger(FX_BSTRC("Length1")) + + pFontDict->GetInteger(FX_BSTRC("Length2")) + + pFontDict->GetInteger(FX_BSTRC("Length3")); + if (org_size < 0) + org_size = 0; - CPDF_StreamAcc* pFontFile = new CPDF_StreamAcc; - pFontFile->LoadAllData(pFontStream, FALSE, org_size); + CPDF_StreamAcc* pFontFile = new CPDF_StreamAcc; + pFontFile->LoadAllData(pFontStream, FALSE, org_size); - CPDF_CountedStreamAcc* ftData = new CPDF_CountedStreamAcc(pFontFile); - m_FontFileMap[pFontStream] = ftData; - return ftData->AddRef(); + CPDF_CountedStreamAcc* ftData = new CPDF_CountedStreamAcc(pFontFile); + m_FontFileMap[pFontStream] = ftData; + return ftData->AddRef(); } -void CPDF_DocPageData::ReleaseFontFileStreamAcc(CPDF_Stream* pFontStream, FX_BOOL bForce) -{ - if (!pFontStream) - return; - - auto it = m_FontFileMap.find(pFontStream); - if (it == m_FontFileMap.end()) - return; - - CPDF_CountedStreamAcc* findData = it->second; - if (!findData) - return; - - findData->RemoveRef(); - if (findData->use_count() == 0 || bForce) { - delete findData->get(); - delete findData; - m_FontFileMap.erase(it); - } +void CPDF_DocPageData::ReleaseFontFileStreamAcc(CPDF_Stream* pFontStream, + FX_BOOL bForce) { + if (!pFontStream) + return; + + auto it = m_FontFileMap.find(pFontStream); + if (it == m_FontFileMap.end()) + return; + + CPDF_CountedStreamAcc* findData = it->second; + if (!findData) + return; + + findData->RemoveRef(); + if (findData->use_count() == 0 || bForce) { + delete findData->get(); + delete findData; + m_FontFileMap.erase(it); + } } -CPDF_CountedColorSpace* CPDF_DocPageData::FindColorSpacePtr(CPDF_Object* pCSObj) const -{ - if (!pCSObj) - return nullptr; +CPDF_CountedColorSpace* CPDF_DocPageData::FindColorSpacePtr( + CPDF_Object* pCSObj) const { + if (!pCSObj) + return nullptr; - auto it = m_ColorSpaceMap.find(pCSObj); - return it != m_ColorSpaceMap.end() ? it->second : nullptr; + auto it = m_ColorSpaceMap.find(pCSObj); + return it != m_ColorSpaceMap.end() ? it->second : nullptr; } -CPDF_CountedPattern* CPDF_DocPageData::FindPatternPtr(CPDF_Object* pPatternObj) const -{ - if (!pPatternObj) - return nullptr; +CPDF_CountedPattern* CPDF_DocPageData::FindPatternPtr( + CPDF_Object* pPatternObj) const { + if (!pPatternObj) + return nullptr; - auto it = m_PatternMap.find(pPatternObj); - return it != m_PatternMap.end() ? it->second : nullptr; + auto it = m_PatternMap.find(pPatternObj); + return it != m_PatternMap.end() ? it->second : nullptr; } -- cgit v1.2.3