diff options
Diffstat (limited to 'core/fpdfapi/parser')
45 files changed, 305 insertions, 320 deletions
diff --git a/core/fpdfapi/parser/cfdf_document.cpp b/core/fpdfapi/parser/cfdf_document.cpp index 41827db0d9..1f84f56547 100644 --- a/core/fpdfapi/parser/cfdf_document.cpp +++ b/core/fpdfapi/parser/cfdf_document.cpp @@ -52,7 +52,7 @@ void CFDF_Document::ParseStream( parser.InitParser(m_pFile, 0); while (1) { bool bNumber; - CFX_ByteString word = parser.GetNextWord(&bNumber); + ByteString word = parser.GetNextWord(&bNumber); if (bNumber) { uint32_t objnum = FXSYS_atoui(word.c_str()); if (!objnum) @@ -89,9 +89,9 @@ void CFDF_Document::ParseStream( } } -CFX_ByteString CFDF_Document::WriteToString() const { +ByteString CFDF_Document::WriteToString() const { if (!m_pRootDict) - return CFX_ByteString(); + return ByteString(); std::ostringstream buf; buf << "%FDF-1.2\r\n"; @@ -102,5 +102,5 @@ CFX_ByteString CFDF_Document::WriteToString() const { buf << "trailer\r\n<</Root " << m_pRootDict->GetObjNum() << " 0 R>>\r\n%%EOF\r\n"; - return CFX_ByteString(buf); + return ByteString(buf); } diff --git a/core/fpdfapi/parser/cfdf_document.h b/core/fpdfapi/parser/cfdf_document.h index d58f93ced4..a24415b099 100644 --- a/core/fpdfapi/parser/cfdf_document.h +++ b/core/fpdfapi/parser/cfdf_document.h @@ -27,7 +27,7 @@ class CFDF_Document : public CPDF_IndirectObjectHolder { CFDF_Document(); ~CFDF_Document() override; - CFX_ByteString WriteToString() const; + ByteString WriteToString() const; CPDF_Dictionary* GetRoot() const { return m_pRootDict.Get(); } protected: diff --git a/core/fpdfapi/parser/cpdf_array.cpp b/core/fpdfapi/parser/cpdf_array.cpp index a0957b6c2b..f4907ffdf1 100644 --- a/core/fpdfapi/parser/cpdf_array.cpp +++ b/core/fpdfapi/parser/cpdf_array.cpp @@ -20,7 +20,7 @@ CPDF_Array::CPDF_Array() {} -CPDF_Array::CPDF_Array(const CFX_WeakPtr<CFX_ByteStringPool>& pPool) +CPDF_Array::CPDF_Array(const CFX_WeakPtr<ByteStringPool>& pPool) : m_pPool(pPool) {} CPDF_Array::~CPDF_Array() { @@ -100,15 +100,15 @@ CPDF_Object* CPDF_Array::GetDirectObjectAt(size_t i) const { return m_Objects[i]->GetDirect(); } -CFX_ByteString CPDF_Array::GetStringAt(size_t i) const { +ByteString CPDF_Array::GetStringAt(size_t i) const { if (i >= m_Objects.size()) - return CFX_ByteString(); + return ByteString(); return m_Objects[i]->GetString(); } -CFX_WideString CPDF_Array::GetUnicodeTextAt(size_t i) const { +WideString CPDF_Array::GetUnicodeTextAt(size_t i) const { if (i >= m_Objects.size()) - return CFX_WideString(); + return WideString(); return m_Objects[i]->GetUnicodeText(); } diff --git a/core/fpdfapi/parser/cpdf_array.h b/core/fpdfapi/parser/cpdf_array.h index d1be233652..3b18025b2d 100644 --- a/core/fpdfapi/parser/cpdf_array.h +++ b/core/fpdfapi/parser/cpdf_array.h @@ -24,7 +24,7 @@ class CPDF_Array : public CPDF_Object { std::vector<std::unique_ptr<CPDF_Object>>::const_iterator; CPDF_Array(); - explicit CPDF_Array(const CFX_WeakPtr<CFX_ByteStringPool>& pPool); + explicit CPDF_Array(const CFX_WeakPtr<ByteStringPool>& pPool); ~CPDF_Array() override; // CPDF_Object: @@ -39,8 +39,8 @@ class CPDF_Array : public CPDF_Object { size_t GetCount() const { return m_Objects.size(); } CPDF_Object* GetObjectAt(size_t index) const; CPDF_Object* GetDirectObjectAt(size_t index) const; - CFX_ByteString GetStringAt(size_t index) const; - CFX_WideString GetUnicodeTextAt(size_t index) const; + ByteString GetStringAt(size_t index) const; + WideString GetUnicodeTextAt(size_t index) const; int GetIntegerAt(size_t index) const; float GetNumberAt(size_t index) const; CPDF_Dictionary* GetDictAt(size_t index) const; @@ -112,7 +112,7 @@ class CPDF_Array : public CPDF_Object { std::set<const CPDF_Object*>* pVisited) const override; std::vector<std::unique_ptr<CPDF_Object>> m_Objects; - CFX_WeakPtr<CFX_ByteStringPool> m_pPool; + CFX_WeakPtr<ByteStringPool> m_pPool; }; inline CPDF_Array* ToArray(CPDF_Object* obj) { diff --git a/core/fpdfapi/parser/cpdf_boolean.cpp b/core/fpdfapi/parser/cpdf_boolean.cpp index 2633c876d3..a1dc450519 100644 --- a/core/fpdfapi/parser/cpdf_boolean.cpp +++ b/core/fpdfapi/parser/cpdf_boolean.cpp @@ -22,7 +22,7 @@ std::unique_ptr<CPDF_Object> CPDF_Boolean::Clone() const { return pdfium::MakeUnique<CPDF_Boolean>(m_bValue); } -CFX_ByteString CPDF_Boolean::GetString() const { +ByteString CPDF_Boolean::GetString() const { return m_bValue ? "true" : "false"; } @@ -30,7 +30,7 @@ int CPDF_Boolean::GetInteger() const { return m_bValue; } -void CPDF_Boolean::SetString(const CFX_ByteString& str) { +void CPDF_Boolean::SetString(const ByteString& str) { m_bValue = (str == "true"); } @@ -48,5 +48,5 @@ const CPDF_Boolean* CPDF_Boolean::AsBoolean() const { bool CPDF_Boolean::WriteTo(IFX_ArchiveStream* archive) const { return archive->WriteString(" ") && - archive->WriteString(GetString().AsStringC()); + archive->WriteString(GetString().AsStringView()); } diff --git a/core/fpdfapi/parser/cpdf_boolean.h b/core/fpdfapi/parser/cpdf_boolean.h index 2dd1486b6a..c0a69d8932 100644 --- a/core/fpdfapi/parser/cpdf_boolean.h +++ b/core/fpdfapi/parser/cpdf_boolean.h @@ -22,9 +22,9 @@ class CPDF_Boolean : public CPDF_Object { // CPDF_Object: Type GetType() const override; std::unique_ptr<CPDF_Object> Clone() const override; - CFX_ByteString GetString() const override; + ByteString GetString() const override; int GetInteger() const override; - void SetString(const CFX_ByteString& str) override; + void SetString(const ByteString& str) override; bool IsBoolean() const override; CPDF_Boolean* AsBoolean() override; const CPDF_Boolean* AsBoolean() const override; diff --git a/core/fpdfapi/parser/cpdf_crypto_handler.cpp b/core/fpdfapi/parser/cpdf_crypto_handler.cpp index 74428ba6a8..cae95f2c19 100644 --- a/core/fpdfapi/parser/cpdf_crypto_handler.cpp +++ b/core/fpdfapi/parser/cpdf_crypto_handler.cpp @@ -230,14 +230,14 @@ bool CPDF_CryptoHandler::CryptFinish(void* context, return true; } -CFX_ByteString CPDF_CryptoHandler::Decrypt(uint32_t objnum, - uint32_t gennum, - const CFX_ByteString& str) { +ByteString CPDF_CryptoHandler::Decrypt(uint32_t objnum, + uint32_t gennum, + const ByteString& str) { CFX_BinaryBuf dest_buf; void* context = DecryptStart(objnum, gennum); DecryptStream(context, str.raw_str(), str.GetLength(), dest_buf); DecryptFinish(context, dest_buf); - return CFX_ByteString(dest_buf.GetBuffer(), dest_buf.GetSize()); + return ByteString(dest_buf.GetBuffer(), dest_buf.GetSize()); } void* CPDF_CryptoHandler::DecryptStart(uint32_t objnum, uint32_t gennum) { diff --git a/core/fpdfapi/parser/cpdf_crypto_handler.h b/core/fpdfapi/parser/cpdf_crypto_handler.h index adf0c6c680..252f41c333 100644 --- a/core/fpdfapi/parser/cpdf_crypto_handler.h +++ b/core/fpdfapi/parser/cpdf_crypto_handler.h @@ -28,9 +28,7 @@ class CPDF_CryptoHandler : public CFX_Retainable { CPDF_SecurityHandler* pSecurityHandler); uint32_t DecryptGetSize(uint32_t src_size); void* DecryptStart(uint32_t objnum, uint32_t gennum); - CFX_ByteString Decrypt(uint32_t objnum, - uint32_t gennum, - const CFX_ByteString& str); + ByteString Decrypt(uint32_t objnum, uint32_t gennum, const ByteString& str); bool DecryptStream(void* context, const uint8_t* src_buf, uint32_t src_size, diff --git a/core/fpdfapi/parser/cpdf_data_avail.cpp b/core/fpdfapi/parser/cpdf_data_avail.cpp index b10029d4ce..994d082712 100644 --- a/core/fpdfapi/parser/cpdf_data_avail.cpp +++ b/core/fpdfapi/parser/cpdf_data_avail.cpp @@ -473,7 +473,7 @@ bool CPDF_DataAvail::CheckPage() { if (!pObj->IsDictionary()) continue; - CFX_ByteString type = pObj->GetDict()->GetStringFor("Type"); + ByteString type = pObj->GetDict()->GetStringFor("Type"); if (type == "Pages") { m_PagesArray.push_back(std::move(pObj)); continue; @@ -661,7 +661,7 @@ std::unique_ptr<CPDF_Object> CPDF_DataAvail::ParseIndirectObjectAt( m_syntaxParser.SetPos(pos); bool bIsNumber; - CFX_ByteString word = m_syntaxParser.GetNextWord(&bIsNumber); + ByteString word = m_syntaxParser.GetNextWord(&bIsNumber); if (!bIsNumber) return nullptr; @@ -723,7 +723,7 @@ bool CPDF_DataAvail::IsLinearizedFile(uint8_t* pData, uint32_t dwLen) { m_syntaxParser.SetPos(m_syntaxParser.m_HeaderOffset + 9); bool bNumber; - CFX_ByteString wordObjNum = m_syntaxParser.GetNextWord(&bNumber); + ByteString wordObjNum = m_syntaxParser.GetNextWord(&bNumber); if (!bNumber) return false; @@ -761,7 +761,7 @@ bool CPDF_DataAvail::CheckEnd() { m_syntaxParser.GetNextWord(nullptr); bool bNumber; - CFX_ByteString xrefpos_str = m_syntaxParser.GetNextWord(&bNumber); + ByteString xrefpos_str = m_syntaxParser.GetNextWord(&bNumber); if (!bNumber) { m_docStatus = PDF_DATAAVAIL_ERROR; return false; @@ -781,7 +781,7 @@ void CPDF_DataAvail::SetStartOffset(FX_FILESIZE dwOffset) { m_Pos = dwOffset; } -bool CPDF_DataAvail::GetNextToken(CFX_ByteString* token) { +bool CPDF_DataAvail::GetNextToken(ByteString* token) { uint8_t ch; if (!GetNextChar(ch)) return false; @@ -814,7 +814,7 @@ bool CPDF_DataAvail::GetNextToken(CFX_ByteString* token) { if (!PDFCharIsOther(ch) && !PDFCharIsNumeric(ch)) { m_Pos--; - *token = CFX_ByteString(buffer, index); + *token = ByteString(buffer, index); return true; } if (index < sizeof(buffer)) @@ -837,7 +837,7 @@ bool CPDF_DataAvail::GetNextToken(CFX_ByteString* token) { else m_Pos--; } - *token = CFX_ByteString(buffer, index); + *token = ByteString(buffer, index); return true; } @@ -854,7 +854,7 @@ bool CPDF_DataAvail::GetNextToken(CFX_ByteString* token) { } } - *token = CFX_ByteString(buffer, index); + *token = ByteString(buffer, index); return true; } @@ -885,7 +885,7 @@ bool CPDF_DataAvail::GetNextChar(uint8_t& ch) { } bool CPDF_DataAvail::CheckCrossRefItem() { - CFX_ByteString token; + ByteString token; while (1) { const CPDF_ReadValidator::Session read_session(GetValidator().Get()); if (!GetNextToken(&token)) { @@ -904,7 +904,7 @@ bool CPDF_DataAvail::CheckCrossRefItem() { bool CPDF_DataAvail::CheckCrossRef() { const CPDF_ReadValidator::Session read_session(GetValidator().Get()); - CFX_ByteString token; + ByteString token; if (!GetNextToken(&token)) { if (!GetValidator()->has_read_problems()) m_docStatus = PDF_DATAAVAIL_ERROR; @@ -1046,7 +1046,7 @@ bool CPDF_DataAvail::CheckUnknownPageNode(uint32_t dwPageNo, pPageNode->m_dwPageNo = dwPageNo; CPDF_Dictionary* pDict = pPage->GetDict(); - const CFX_ByteString type = pDict->GetStringFor("Type"); + const ByteString type = pDict->GetStringFor("Type"); if (type == "Page") { pPageNode->m_type = PDF_PAGENODE_PAGE; return true; diff --git a/core/fpdfapi/parser/cpdf_data_avail.h b/core/fpdfapi/parser/cpdf_data_avail.h index e2a4a20aa1..850ceeaae2 100644 --- a/core/fpdfapi/parser/cpdf_data_avail.h +++ b/core/fpdfapi/parser/cpdf_data_avail.h @@ -145,7 +145,7 @@ class CPDF_DataAvail final { bool IsLinearizedFile(uint8_t* pData, uint32_t dwLen); void SetStartOffset(FX_FILESIZE dwOffset); - bool GetNextToken(CFX_ByteString* token); + bool GetNextToken(ByteString* token); bool GetNextChar(uint8_t& ch); std::unique_ptr<CPDF_Object> ParseIndirectObjectAt( FX_FILESIZE pos, @@ -200,7 +200,7 @@ class CPDF_DataAvail final { FX_FILESIZE m_Pos; FX_FILESIZE m_bufferOffset; uint32_t m_bufferSize; - CFX_ByteString m_WordBuf; + ByteString m_WordBuf; uint8_t m_bufferData[512]; std::vector<uint32_t> m_XRefStreamList; std::vector<uint32_t> m_PageObjList; diff --git a/core/fpdfapi/parser/cpdf_dictionary.cpp b/core/fpdfapi/parser/cpdf_dictionary.cpp index 4c035871df..570c57e557 100644 --- a/core/fpdfapi/parser/cpdf_dictionary.cpp +++ b/core/fpdfapi/parser/cpdf_dictionary.cpp @@ -22,9 +22,9 @@ #include "third_party/base/stl_util.h" CPDF_Dictionary::CPDF_Dictionary() - : CPDF_Dictionary(CFX_WeakPtr<CFX_ByteStringPool>()) {} + : CPDF_Dictionary(CFX_WeakPtr<ByteStringPool>()) {} -CPDF_Dictionary::CPDF_Dictionary(const CFX_WeakPtr<CFX_ByteStringPool>& pPool) +CPDF_Dictionary::CPDF_Dictionary(const CFX_WeakPtr<ByteStringPool>& pPool) : m_pPool(pPool) {} CPDF_Dictionary::~CPDF_Dictionary() { @@ -78,58 +78,56 @@ std::unique_ptr<CPDF_Object> CPDF_Dictionary::CloneNonCyclic( return std::move(pCopy); } -CPDF_Object* CPDF_Dictionary::GetObjectFor(const CFX_ByteString& key) const { +CPDF_Object* CPDF_Dictionary::GetObjectFor(const ByteString& key) const { auto it = m_Map.find(key); return it != m_Map.end() ? it->second.get() : nullptr; } -CPDF_Object* CPDF_Dictionary::GetDirectObjectFor( - const CFX_ByteString& key) const { +CPDF_Object* CPDF_Dictionary::GetDirectObjectFor(const ByteString& key) const { CPDF_Object* p = GetObjectFor(key); return p ? p->GetDirect() : nullptr; } -CFX_ByteString CPDF_Dictionary::GetStringFor(const CFX_ByteString& key) const { +ByteString CPDF_Dictionary::GetStringFor(const ByteString& key) const { CPDF_Object* p = GetObjectFor(key); - return p ? p->GetString() : CFX_ByteString(); + return p ? p->GetString() : ByteString(); } -CFX_WideString CPDF_Dictionary::GetUnicodeTextFor( - const CFX_ByteString& key) const { +WideString CPDF_Dictionary::GetUnicodeTextFor(const ByteString& key) const { CPDF_Object* p = GetObjectFor(key); if (CPDF_Reference* pRef = ToReference(p)) p = pRef->GetDirect(); - return p ? p->GetUnicodeText() : CFX_WideString(); + return p ? p->GetUnicodeText() : WideString(); } -CFX_ByteString CPDF_Dictionary::GetStringFor(const CFX_ByteString& key, - const CFX_ByteString& def) const { +ByteString CPDF_Dictionary::GetStringFor(const ByteString& key, + const ByteString& def) const { CPDF_Object* p = GetObjectFor(key); - return p ? p->GetString() : CFX_ByteString(def); + return p ? p->GetString() : ByteString(def); } -int CPDF_Dictionary::GetIntegerFor(const CFX_ByteString& key) const { +int CPDF_Dictionary::GetIntegerFor(const ByteString& key) const { CPDF_Object* p = GetObjectFor(key); return p ? p->GetInteger() : 0; } -int CPDF_Dictionary::GetIntegerFor(const CFX_ByteString& key, int def) const { +int CPDF_Dictionary::GetIntegerFor(const ByteString& key, int def) const { CPDF_Object* p = GetObjectFor(key); return p ? p->GetInteger() : def; } -float CPDF_Dictionary::GetNumberFor(const CFX_ByteString& key) const { +float CPDF_Dictionary::GetNumberFor(const ByteString& key) const { CPDF_Object* p = GetObjectFor(key); return p ? p->GetNumber() : 0; } -bool CPDF_Dictionary::GetBooleanFor(const CFX_ByteString& key, +bool CPDF_Dictionary::GetBooleanFor(const ByteString& key, bool bDefault) const { CPDF_Object* p = GetObjectFor(key); return ToBoolean(p) ? p->GetInteger() != 0 : bDefault; } -CPDF_Dictionary* CPDF_Dictionary::GetDictFor(const CFX_ByteString& key) const { +CPDF_Dictionary* CPDF_Dictionary::GetDictFor(const ByteString& key) const { CPDF_Object* p = GetDirectObjectFor(key); if (!p) return nullptr; @@ -140,15 +138,15 @@ CPDF_Dictionary* CPDF_Dictionary::GetDictFor(const CFX_ByteString& key) const { return nullptr; } -CPDF_Array* CPDF_Dictionary::GetArrayFor(const CFX_ByteString& key) const { +CPDF_Array* CPDF_Dictionary::GetArrayFor(const ByteString& key) const { return ToArray(GetDirectObjectFor(key)); } -CPDF_Stream* CPDF_Dictionary::GetStreamFor(const CFX_ByteString& key) const { +CPDF_Stream* CPDF_Dictionary::GetStreamFor(const ByteString& key) const { return ToStream(GetDirectObjectFor(key)); } -CFX_FloatRect CPDF_Dictionary::GetRectFor(const CFX_ByteString& key) const { +CFX_FloatRect CPDF_Dictionary::GetRectFor(const ByteString& key) const { CFX_FloatRect rect; CPDF_Array* pArray = GetArrayFor(key); if (pArray) @@ -156,7 +154,7 @@ CFX_FloatRect CPDF_Dictionary::GetRectFor(const CFX_ByteString& key) const { return rect; } -CFX_Matrix CPDF_Dictionary::GetMatrixFor(const CFX_ByteString& key) const { +CFX_Matrix CPDF_Dictionary::GetMatrixFor(const ByteString& key) const { CFX_Matrix matrix; CPDF_Array* pArray = GetArrayFor(key); if (pArray) @@ -164,7 +162,7 @@ CFX_Matrix CPDF_Dictionary::GetMatrixFor(const CFX_ByteString& key) const { return matrix; } -bool CPDF_Dictionary::KeyExist(const CFX_ByteString& key) const { +bool CPDF_Dictionary::KeyExist(const ByteString& key) const { return pdfium::ContainsKey(m_Map, key); } @@ -175,7 +173,7 @@ bool CPDF_Dictionary::IsSignatureDict() const { return pType && pType->GetString() == "Sig"; } -CPDF_Object* CPDF_Dictionary::SetFor(const CFX_ByteString& key, +CPDF_Object* CPDF_Dictionary::SetFor(const ByteString& key, std::unique_ptr<CPDF_Object> pObj) { if (!pObj) { m_Map.erase(key); @@ -188,7 +186,7 @@ CPDF_Object* CPDF_Dictionary::SetFor(const CFX_ByteString& key, } void CPDF_Dictionary::ConvertToIndirectObjectFor( - const CFX_ByteString& key, + const ByteString& key, CPDF_IndirectObjectHolder* pHolder) { auto it = m_Map.find(key); if (it == m_Map.end() || it->second->IsReference()) @@ -198,8 +196,7 @@ void CPDF_Dictionary::ConvertToIndirectObjectFor( it->second = pdfium::MakeUnique<CPDF_Reference>(pHolder, pObj->GetObjNum()); } -std::unique_ptr<CPDF_Object> CPDF_Dictionary::RemoveFor( - const CFX_ByteString& key) { +std::unique_ptr<CPDF_Object> CPDF_Dictionary::RemoveFor(const ByteString& key) { std::unique_ptr<CPDF_Object> result; auto it = m_Map.find(key); if (it != m_Map.end()) { @@ -209,8 +206,8 @@ std::unique_ptr<CPDF_Object> CPDF_Dictionary::RemoveFor( return result; } -void CPDF_Dictionary::ReplaceKey(const CFX_ByteString& oldkey, - const CFX_ByteString& newkey) { +void CPDF_Dictionary::ReplaceKey(const ByteString& oldkey, + const ByteString& newkey) { auto old_it = m_Map.find(oldkey); if (old_it == m_Map.end()) return; @@ -223,7 +220,7 @@ void CPDF_Dictionary::ReplaceKey(const CFX_ByteString& oldkey, m_Map.erase(old_it); } -void CPDF_Dictionary::SetRectFor(const CFX_ByteString& key, +void CPDF_Dictionary::SetRectFor(const ByteString& key, const CFX_FloatRect& rect) { CPDF_Array* pArray = SetNewFor<CPDF_Array>(key); pArray->AddNew<CPDF_Number>(rect.left); @@ -232,7 +229,7 @@ void CPDF_Dictionary::SetRectFor(const CFX_ByteString& key, pArray->AddNew<CPDF_Number>(rect.top); } -void CPDF_Dictionary::SetMatrixFor(const CFX_ByteString& key, +void CPDF_Dictionary::SetMatrixFor(const ByteString& key, const CFX_Matrix& matrix) { CPDF_Array* pArray = SetNewFor<CPDF_Array>(key); pArray->AddNew<CPDF_Number>(matrix.a); @@ -243,7 +240,7 @@ void CPDF_Dictionary::SetMatrixFor(const CFX_ByteString& key, pArray->AddNew<CPDF_Number>(matrix.f); } -CFX_ByteString CPDF_Dictionary::MaybeIntern(const CFX_ByteString& str) { +ByteString CPDF_Dictionary::MaybeIntern(const ByteString& str) { return m_pPool ? m_pPool->Intern(str) : str; } @@ -252,10 +249,10 @@ bool CPDF_Dictionary::WriteTo(IFX_ArchiveStream* archive) const { return false; for (const auto& it : *this) { - const CFX_ByteString& key = it.first; + const ByteString& key = it.first; CPDF_Object* pValue = it.second.get(); if (!archive->WriteString("/") || - !archive->WriteString(PDF_NameEncode(key).AsStringC())) { + !archive->WriteString(PDF_NameEncode(key).AsStringView())) { return false; } diff --git a/core/fpdfapi/parser/cpdf_dictionary.h b/core/fpdfapi/parser/cpdf_dictionary.h index 31a09d954d..93c00c8c10 100644 --- a/core/fpdfapi/parser/cpdf_dictionary.h +++ b/core/fpdfapi/parser/cpdf_dictionary.h @@ -24,10 +24,10 @@ class CPDF_IndirectObjectHolder; class CPDF_Dictionary : public CPDF_Object { public: using const_iterator = - std::map<CFX_ByteString, std::unique_ptr<CPDF_Object>>::const_iterator; + std::map<ByteString, std::unique_ptr<CPDF_Object>>::const_iterator; CPDF_Dictionary(); - explicit CPDF_Dictionary(const CFX_WeakPtr<CFX_ByteStringPool>& pPool); + explicit CPDF_Dictionary(const CFX_WeakPtr<ByteStringPool>& pPool); ~CPDF_Dictionary() override; // CPDF_Object: @@ -40,76 +40,73 @@ class CPDF_Dictionary : public CPDF_Object { bool WriteTo(IFX_ArchiveStream* archive) const override; size_t GetCount() const { return m_Map.size(); } - CPDF_Object* GetObjectFor(const CFX_ByteString& key) const; - CPDF_Object* GetDirectObjectFor(const CFX_ByteString& key) const; - CFX_ByteString GetStringFor(const CFX_ByteString& key) const; - CFX_ByteString GetStringFor(const CFX_ByteString& key, - const CFX_ByteString& default_str) const; - CFX_WideString GetUnicodeTextFor(const CFX_ByteString& key) const; - int GetIntegerFor(const CFX_ByteString& key) const; - int GetIntegerFor(const CFX_ByteString& key, int default_int) const; - bool GetBooleanFor(const CFX_ByteString& key, bool bDefault = false) const; - float GetNumberFor(const CFX_ByteString& key) const; - CPDF_Dictionary* GetDictFor(const CFX_ByteString& key) const; - CPDF_Stream* GetStreamFor(const CFX_ByteString& key) const; - CPDF_Array* GetArrayFor(const CFX_ByteString& key) const; - CFX_FloatRect GetRectFor(const CFX_ByteString& key) const; - CFX_Matrix GetMatrixFor(const CFX_ByteString& key) const; - float GetFloatFor(const CFX_ByteString& key) const { - return GetNumberFor(key); - } - - bool KeyExist(const CFX_ByteString& key) const; + CPDF_Object* GetObjectFor(const ByteString& key) const; + CPDF_Object* GetDirectObjectFor(const ByteString& key) const; + ByteString GetStringFor(const ByteString& key) const; + ByteString GetStringFor(const ByteString& key, + const ByteString& default_str) const; + WideString GetUnicodeTextFor(const ByteString& key) const; + int GetIntegerFor(const ByteString& key) const; + int GetIntegerFor(const ByteString& key, int default_int) const; + bool GetBooleanFor(const ByteString& key, bool bDefault = false) const; + float GetNumberFor(const ByteString& key) const; + CPDF_Dictionary* GetDictFor(const ByteString& key) const; + CPDF_Stream* GetStreamFor(const ByteString& key) const; + CPDF_Array* GetArrayFor(const ByteString& key) const; + CFX_FloatRect GetRectFor(const ByteString& key) const; + CFX_Matrix GetMatrixFor(const ByteString& key) const; + float GetFloatFor(const ByteString& key) const { return GetNumberFor(key); } + + bool KeyExist(const ByteString& key) const; bool IsSignatureDict() const; // Set* functions invalidate iterators for the element with the key |key|. // Takes ownership of |pObj|, returns an unowned pointer to it. - CPDF_Object* SetFor(const CFX_ByteString& key, - std::unique_ptr<CPDF_Object> pObj); + CPDF_Object* SetFor(const ByteString& key, std::unique_ptr<CPDF_Object> pObj); // Creates a new object owned by the dictionary and returns an unowned // pointer to it. template <typename T, typename... Args> typename std::enable_if<!CanInternStrings<T>::value, T*>::type SetNewFor( - const CFX_ByteString& key, + const ByteString& key, Args&&... args) { return static_cast<T*>( SetFor(key, pdfium::MakeUnique<T>(std::forward<Args>(args)...))); } template <typename T, typename... Args> typename std::enable_if<CanInternStrings<T>::value, T*>::type SetNewFor( - const CFX_ByteString& key, + const ByteString& key, Args&&... args) { return static_cast<T*>(SetFor( key, pdfium::MakeUnique<T>(m_pPool, std::forward<Args>(args)...))); } // Convenience functions to convert native objects to array form. - void SetRectFor(const CFX_ByteString& key, const CFX_FloatRect& rect); - void SetMatrixFor(const CFX_ByteString& key, const CFX_Matrix& matrix); + void SetRectFor(const ByteString& key, const CFX_FloatRect& rect); + void SetMatrixFor(const ByteString& key, const CFX_Matrix& matrix); - void ConvertToIndirectObjectFor(const CFX_ByteString& key, + void ConvertToIndirectObjectFor(const ByteString& key, CPDF_IndirectObjectHolder* pHolder); // Invalidates iterators for the element with the key |key|. - std::unique_ptr<CPDF_Object> RemoveFor(const CFX_ByteString& key); + std::unique_ptr<CPDF_Object> RemoveFor(const ByteString& key); // Invalidates iterators for the element with the key |oldkey|. - void ReplaceKey(const CFX_ByteString& oldkey, const CFX_ByteString& newkey); + void ReplaceKey(const ByteString& oldkey, const ByteString& newkey); const_iterator begin() const { return m_Map.begin(); } const_iterator end() const { return m_Map.end(); } - CFX_WeakPtr<CFX_ByteStringPool> GetByteStringPool() const { return m_pPool; } + CFX_WeakPtr<ByteStringPool> GetByteStringPool() const { return m_pPool; } protected: - CFX_ByteString MaybeIntern(const CFX_ByteString& str); + ByteString MaybeIntern(const ByteString& str); std::unique_ptr<CPDF_Object> CloneNonCyclic( bool bDirect, std::set<const CPDF_Object*>* visited) const override; - CFX_WeakPtr<CFX_ByteStringPool> m_pPool; - std::map<CFX_ByteString, std::unique_ptr<CPDF_Object>> m_Map; + CFX_WeakPtr<ByteStringPool> m_pPool; + std::map<ByteString, std::unique_ptr<CPDF_Object>> m_Map; }; inline CPDF_Dictionary* ToDictionary(CPDF_Object* obj) { diff --git a/core/fpdfapi/parser/cpdf_document.cpp b/core/fpdfapi/parser/cpdf_document.cpp index 47155176ae..f47551f82b 100644 --- a/core/fpdfapi/parser/cpdf_document.cpp +++ b/core/fpdfapi/parser/cpdf_document.cpp @@ -217,8 +217,8 @@ void InsertWidthArray(HDC hDC, int start, int end, CPDF_Array* pWidthArray) { InsertWidthArrayImpl(widths, size, pWidthArray); } -CFX_ByteString FPDF_GetPSNameFromTT(HDC hDC) { - CFX_ByteString result; +ByteString FPDF_GetPSNameFromTT(HDC hDC) { + ByteString result; DWORD size = ::GetFontData(hDC, 'eman', 0, nullptr, 0); if (size != GDI_ERROR) { LPBYTE buffer = FX_Alloc(BYTE, size); @@ -299,7 +299,7 @@ int CalculateFlags(bool bold, void ProcessNonbCJK(CPDF_Dictionary* pBaseDict, bool bold, bool italic, - CFX_ByteString basefont, + ByteString basefont, std::unique_ptr<CPDF_Array> pWidths) { if (bold && italic) basefont += ",BoldItalic"; @@ -316,7 +316,7 @@ void ProcessNonbCJK(CPDF_Dictionary* pBaseDict, std::unique_ptr<CPDF_Dictionary> CalculateFontDesc( CPDF_Document* pDoc, - CFX_ByteString basefont, + ByteString basefont, int flags, int italicangle, int ascend, @@ -769,7 +769,7 @@ void CPDF_Document::DeletePage(int iPage) { CPDF_Font* CPDF_Document::AddStandardFont(const char* font, CPDF_FontEncoding* pEncoding) { - CFX_ByteString name(font); + ByteString name(font); if (PDF_GetStandardFontName(&name) < 0) return nullptr; return GetPageData()->GetStandardFont(name, pEncoding); @@ -793,7 +793,7 @@ size_t CPDF_Document::CalculateEncodingDict(int charset, const uint16_t* pUnicodes = g_FX_CharsetUnicodes[i].m_pUnicodes; for (int j = 0; j < 128; j++) { - CFX_ByteString name = PDF_AdobeNameFromUnicode(pUnicodes[j]); + ByteString name = PDF_AdobeNameFromUnicode(pUnicodes[j]); pArray->AddNew<CPDF_Name>(name.IsEmpty() ? ".notdef" : name); } pBaseDict->SetNewFor<CPDF_Reference>("Encoding", this, @@ -805,11 +805,11 @@ CPDF_Dictionary* CPDF_Document::ProcessbCJK( CPDF_Dictionary* pBaseDict, int charset, bool bVert, - CFX_ByteString basefont, + ByteString basefont, std::function<void(wchar_t, wchar_t, CPDF_Array*)> Insert) { CPDF_Dictionary* pFontDict = NewIndirect<CPDF_Dictionary>(); - CFX_ByteString cmap; - CFX_ByteString ordering; + ByteString cmap; + ByteString ordering; int supplement = 0; CPDF_Array* pWidthArray = pFontDict->SetNewFor<CPDF_Array>("W"); switch (charset) { @@ -875,7 +875,7 @@ CPDF_Font* CPDF_Document::AddFont(CFX_Font* pFont, int charset, bool bVert) { bool bCJK = charset == FX_CHARSET_ChineseTraditional || charset == FX_CHARSET_ChineseSimplified || charset == FX_CHARSET_Hangul || charset == FX_CHARSET_ShiftJIS; - CFX_ByteString basefont = pFont->GetFamilyName(); + ByteString basefont = pFont->GetFamilyName(); basefont.Replace(" ", ""); int flags = CalculateFlags(pFont->IsBold(), pFont->IsItalic(), pFont->IsFixedWidth(), @@ -958,12 +958,12 @@ CPDF_Font* CPDF_Document::AddWindowsFont(LOGFONTW* pLogFont, bool bTranslateName) { LOGFONTA lfa; memcpy(&lfa, pLogFont, (char*)lfa.lfFaceName - (char*)&lfa); - CFX_ByteString face = CFX_ByteString::FromUnicode(pLogFont->lfFaceName); + ByteString face = ByteString::FromUnicode(pLogFont->lfFaceName); if (face.GetLength() >= LF_FACESIZE) return nullptr; strncpy(lfa.lfFaceName, face.c_str(), - (face.GetLength() + 1) * sizeof(CFX_ByteString::CharType)); + (face.GetLength() + 1) * sizeof(ByteString::CharType)); return AddWindowsFont(&lfa, bVert, bTranslateName); } @@ -996,7 +996,7 @@ CPDF_Font* CPDF_Document::AddWindowsFont(LOGFONTA* pLogFont, pLogFont->lfCharSet == FX_CHARSET_ChineseSimplified || pLogFont->lfCharSet == FX_CHARSET_Hangul || pLogFont->lfCharSet == FX_CHARSET_ShiftJIS; - CFX_ByteString basefont; + ByteString basefont; if (bTranslateName && bCJK) basefont = FPDF_GetPSNameFromTT(hDC); diff --git a/core/fpdfapi/parser/cpdf_document.h b/core/fpdfapi/parser/cpdf_document.h index cc5076379e..ff80fa85c3 100644 --- a/core/fpdfapi/parser/cpdf_document.h +++ b/core/fpdfapi/parser/cpdf_document.h @@ -122,7 +122,7 @@ class CPDF_Document : public CPDF_IndirectObjectHolder { CPDF_Dictionary* pBaseDict, int charset, bool bVert, - CFX_ByteString basefont, + ByteString basefont, std::function<void(wchar_t, wchar_t, CPDF_Array*)> Insert); bool InsertDeletePDFPage(CPDF_Dictionary* pPages, int nPagesToGo, diff --git a/core/fpdfapi/parser/cpdf_indirect_object_holder.cpp b/core/fpdfapi/parser/cpdf_indirect_object_holder.cpp index 434470abeb..2a57411368 100644 --- a/core/fpdfapi/parser/cpdf_indirect_object_holder.cpp +++ b/core/fpdfapi/parser/cpdf_indirect_object_holder.cpp @@ -23,7 +23,7 @@ CPDF_Object* FilterInvalidObjNum(CPDF_Object* obj) { CPDF_IndirectObjectHolder::CPDF_IndirectObjectHolder() : m_LastObjNum(0), - m_pByteStringPool(pdfium::MakeUnique<CFX_ByteStringPool>()) {} + m_pByteStringPool(pdfium::MakeUnique<ByteStringPool>()) {} CPDF_IndirectObjectHolder::~CPDF_IndirectObjectHolder() { m_pByteStringPool.DeleteObject(); // Make weak. diff --git a/core/fpdfapi/parser/cpdf_indirect_object_holder.h b/core/fpdfapi/parser/cpdf_indirect_object_holder.h index b82377e5b7..ab99dd5fcc 100644 --- a/core/fpdfapi/parser/cpdf_indirect_object_holder.h +++ b/core/fpdfapi/parser/cpdf_indirect_object_holder.h @@ -58,7 +58,7 @@ class CPDF_IndirectObjectHolder { uint32_t GetLastObjNum() const { return m_LastObjNum; } void SetLastObjNum(uint32_t objnum) { m_LastObjNum = objnum; } - CFX_WeakPtr<CFX_ByteStringPool> GetByteStringPool() const { + CFX_WeakPtr<ByteStringPool> GetByteStringPool() const { return m_pByteStringPool; } @@ -72,7 +72,7 @@ class CPDF_IndirectObjectHolder { uint32_t m_LastObjNum; std::map<uint32_t, std::unique_ptr<CPDF_Object>> m_IndirectObjs; std::vector<std::unique_ptr<CPDF_Object>> m_OrphanObjs; - CFX_WeakPtr<CFX_ByteStringPool> m_pByteStringPool; + CFX_WeakPtr<ByteStringPool> m_pByteStringPool; }; #endif // CORE_FPDFAPI_PARSER_CPDF_INDIRECT_OBJECT_HOLDER_H_ diff --git a/core/fpdfapi/parser/cpdf_name.cpp b/core/fpdfapi/parser/cpdf_name.cpp index ae33bc7fa0..0dd9890702 100644 --- a/core/fpdfapi/parser/cpdf_name.cpp +++ b/core/fpdfapi/parser/cpdf_name.cpp @@ -10,8 +10,7 @@ #include "core/fxcrt/fx_stream.h" #include "third_party/base/ptr_util.h" -CPDF_Name::CPDF_Name(CFX_WeakPtr<CFX_ByteStringPool> pPool, - const CFX_ByteString& str) +CPDF_Name::CPDF_Name(CFX_WeakPtr<ByteStringPool> pPool, const ByteString& str) : m_Name(str) { if (pPool) m_Name = pPool->Intern(m_Name); @@ -27,11 +26,11 @@ std::unique_ptr<CPDF_Object> CPDF_Name::Clone() const { return pdfium::MakeUnique<CPDF_Name>(nullptr, m_Name); } -CFX_ByteString CPDF_Name::GetString() const { +ByteString CPDF_Name::GetString() const { return m_Name; } -void CPDF_Name::SetString(const CFX_ByteString& str) { +void CPDF_Name::SetString(const ByteString& str) { m_Name = str; } @@ -47,11 +46,11 @@ const CPDF_Name* CPDF_Name::AsName() const { return this; } -CFX_WideString CPDF_Name::GetUnicodeText() const { +WideString CPDF_Name::GetUnicodeText() const { return PDF_DecodeText(m_Name); } bool CPDF_Name::WriteTo(IFX_ArchiveStream* archive) const { return archive->WriteString("/") && - archive->WriteString(PDF_NameEncode(GetString()).AsStringC()); + archive->WriteString(PDF_NameEncode(GetString()).AsStringView()); } diff --git a/core/fpdfapi/parser/cpdf_name.h b/core/fpdfapi/parser/cpdf_name.h index 616f35f9bc..72a72a3a66 100644 --- a/core/fpdfapi/parser/cpdf_name.h +++ b/core/fpdfapi/parser/cpdf_name.h @@ -15,22 +15,22 @@ class CPDF_Name : public CPDF_Object { public: - CPDF_Name(CFX_WeakPtr<CFX_ByteStringPool> pPool, const CFX_ByteString& str); + CPDF_Name(CFX_WeakPtr<ByteStringPool> pPool, const ByteString& str); ~CPDF_Name() override; // CPDF_Object: Type GetType() const override; std::unique_ptr<CPDF_Object> Clone() const override; - CFX_ByteString GetString() const override; - CFX_WideString GetUnicodeText() const override; - void SetString(const CFX_ByteString& str) override; + ByteString GetString() const override; + WideString GetUnicodeText() const override; + void SetString(const ByteString& str) override; bool IsName() const override; CPDF_Name* AsName() override; const CPDF_Name* AsName() const override; bool WriteTo(IFX_ArchiveStream* archive) const override; protected: - CFX_ByteString m_Name; + ByteString m_Name; }; inline CPDF_Name* ToName(CPDF_Object* obj) { diff --git a/core/fpdfapi/parser/cpdf_number.cpp b/core/fpdfapi/parser/cpdf_number.cpp index 9afe30adca..dac1f40b7f 100644 --- a/core/fpdfapi/parser/cpdf_number.cpp +++ b/core/fpdfapi/parser/cpdf_number.cpp @@ -14,7 +14,7 @@ CPDF_Number::CPDF_Number(int value) : m_bInteger(true), m_Integer(value) {} CPDF_Number::CPDF_Number(float value) : m_bInteger(false), m_Float(value) {} -CPDF_Number::CPDF_Number(const CFX_ByteStringC& str) +CPDF_Number::CPDF_Number(const ByteStringView& str) : m_bInteger(FX_atonum(str, &m_Integer)) {} CPDF_Number::~CPDF_Number() {} @@ -48,16 +48,16 @@ const CPDF_Number* CPDF_Number::AsNumber() const { return this; } -void CPDF_Number::SetString(const CFX_ByteString& str) { - m_bInteger = FX_atonum(str.AsStringC(), &m_Integer); +void CPDF_Number::SetString(const ByteString& str) { + m_bInteger = FX_atonum(str.AsStringView(), &m_Integer); } -CFX_ByteString CPDF_Number::GetString() const { - return m_bInteger ? CFX_ByteString::FormatInteger(m_Integer) - : CFX_ByteString::FormatFloat(m_Float); +ByteString CPDF_Number::GetString() const { + return m_bInteger ? ByteString::FormatInteger(m_Integer) + : ByteString::FormatFloat(m_Float); } bool CPDF_Number::WriteTo(IFX_ArchiveStream* archive) const { return archive->WriteString(" ") && - archive->WriteString(GetString().AsStringC()); + archive->WriteString(GetString().AsStringView()); } diff --git a/core/fpdfapi/parser/cpdf_number.h b/core/fpdfapi/parser/cpdf_number.h index 57f82274cb..661177363b 100644 --- a/core/fpdfapi/parser/cpdf_number.h +++ b/core/fpdfapi/parser/cpdf_number.h @@ -18,16 +18,16 @@ class CPDF_Number : public CPDF_Object { CPDF_Number(); explicit CPDF_Number(int value); explicit CPDF_Number(float value); - explicit CPDF_Number(const CFX_ByteStringC& str); + explicit CPDF_Number(const ByteStringView& str); ~CPDF_Number() override; // CPDF_Object: Type GetType() const override; std::unique_ptr<CPDF_Object> Clone() const override; - CFX_ByteString GetString() const override; + ByteString GetString() const override; float GetNumber() const override; int GetInteger() const override; - void SetString(const CFX_ByteString& str) override; + void SetString(const ByteString& str) override; bool IsNumber() const override; CPDF_Number* AsNumber() override; const CPDF_Number* AsNumber() const override; diff --git a/core/fpdfapi/parser/cpdf_object.cpp b/core/fpdfapi/parser/cpdf_object.cpp index b35c6e5b6f..67632a040c 100644 --- a/core/fpdfapi/parser/cpdf_object.cpp +++ b/core/fpdfapi/parser/cpdf_object.cpp @@ -39,12 +39,12 @@ std::unique_ptr<CPDF_Object> CPDF_Object::CloneNonCyclic( return Clone(); } -CFX_ByteString CPDF_Object::GetString() const { - return CFX_ByteString(); +ByteString CPDF_Object::GetString() const { + return ByteString(); } -CFX_WideString CPDF_Object::GetUnicodeText() const { - return CFX_WideString(); +WideString CPDF_Object::GetUnicodeText() const { + return WideString(); } float CPDF_Object::GetNumber() const { @@ -59,7 +59,7 @@ CPDF_Dictionary* CPDF_Object::GetDict() const { return nullptr; } -void CPDF_Object::SetString(const CFX_ByteString& str) { +void CPDF_Object::SetString(const ByteString& str) { NOTREACHED(); } diff --git a/core/fpdfapi/parser/cpdf_object.h b/core/fpdfapi/parser/cpdf_object.h index a07ba677e8..4d4279f98a 100644 --- a/core/fpdfapi/parser/cpdf_object.h +++ b/core/fpdfapi/parser/cpdf_object.h @@ -55,13 +55,13 @@ class CPDF_Object { virtual std::unique_ptr<CPDF_Object> CloneDirectObject() const; virtual CPDF_Object* GetDirect() const; - virtual CFX_ByteString GetString() const; - virtual CFX_WideString GetUnicodeText() const; + virtual ByteString GetString() const; + virtual WideString GetUnicodeText() const; virtual float GetNumber() const; virtual int GetInteger() const; virtual CPDF_Dictionary* GetDict() const; - virtual void SetString(const CFX_ByteString& str); + virtual void SetString(const ByteString& str); virtual bool IsArray() const; virtual bool IsBoolean() const; diff --git a/core/fpdfapi/parser/cpdf_object_walker.cpp b/core/fpdfapi/parser/cpdf_object_walker.cpp index c6e0f0091d..cb59a05d06 100644 --- a/core/fpdfapi/parser/cpdf_object_walker.cpp +++ b/core/fpdfapi/parser/cpdf_object_walker.cpp @@ -57,11 +57,11 @@ class DictionaryIterator : public CPDF_ObjectWalker::SubobjectIterator { dict_iterator_ = object()->GetDict()->begin(); } - const CFX_ByteString& dict_key() const { return dict_key_; } + const ByteString& dict_key() const { return dict_key_; } private: CPDF_Dictionary::const_iterator dict_iterator_; - CFX_ByteString dict_key_; + ByteString dict_key_; }; class ArrayIterator : public CPDF_ObjectWalker::SubobjectIterator { @@ -149,11 +149,11 @@ const CPDF_Object* CPDF_ObjectWalker::GetNext() { parent_object_ = it->object(); dict_key_ = parent_object_->IsDictionary() ? static_cast<DictionaryIterator*>(it)->dict_key() - : CFX_ByteString(); + : ByteString(); current_depth_ = stack_.size(); } } - dict_key_ = CFX_ByteString(); + dict_key_ = ByteString(); current_depth_ = 0; return nullptr; } diff --git a/core/fpdfapi/parser/cpdf_object_walker.h b/core/fpdfapi/parser/cpdf_object_walker.h index 5590440f8f..8cad3c32f3 100644 --- a/core/fpdfapi/parser/cpdf_object_walker.h +++ b/core/fpdfapi/parser/cpdf_object_walker.h @@ -41,7 +41,7 @@ class CPDF_ObjectWalker { size_t current_depth() const { return current_depth_; } const CPDF_Object* GetParent() const { return parent_object_; } - const CFX_ByteString& dictionary_key() const { return dict_key_; } + const ByteString& dictionary_key() const { return dict_key_; } private: static std::unique_ptr<SubobjectIterator> MakeIterator( @@ -50,7 +50,7 @@ class CPDF_ObjectWalker { const CPDF_Object* next_object_; const CPDF_Object* parent_object_; - CFX_ByteString dict_key_; + ByteString dict_key_; size_t current_depth_; std::stack<std::unique_ptr<SubobjectIterator>> stack_; diff --git a/core/fpdfapi/parser/cpdf_parser.cpp b/core/fpdfapi/parser/cpdf_parser.cpp index a9cad02f5e..b0a8126a3d 100644 --- a/core/fpdfapi/parser/cpdf_parser.cpp +++ b/core/fpdfapi/parser/cpdf_parser.cpp @@ -239,7 +239,7 @@ CPDF_Parser::Error CPDF_Parser::StartParseInternal(CPDF_Document* pDocument) { m_pSyntax->GetKeyword(); bool bNumber; - CFX_ByteString xrefpos_str = m_pSyntax->GetNextWord(&bNumber); + ByteString xrefpos_str = m_pSyntax->GetNextWord(&bNumber); if (!bNumber) return FORMAT_ERROR; @@ -314,7 +314,7 @@ CPDF_Parser::Error CPDF_Parser::SetEncryptHandler() { } if (m_pEncryptDict) { - CFX_ByteString filter = m_pEncryptDict->GetStringFor("Filter"); + ByteString filter = m_pEncryptDict->GetStringFor("Filter"); if (filter != "Standard") return HANDLER_ERROR; @@ -364,7 +364,7 @@ bool CPDF_Parser::VerifyCrossRefV4() { FX_FILESIZE SavedPos = m_pSyntax->GetPos(); m_pSyntax->SetPos(it.second.pos); bool is_num = false; - CFX_ByteString num_str = m_pSyntax->GetNextWord(&is_num); + ByteString num_str = m_pSyntax->GetNextWord(&is_num); m_pSyntax->SetPos(SavedPos); if (!is_num || num_str.IsEmpty() || FXSYS_atoui(num_str.c_str()) != it.first) { @@ -593,7 +593,7 @@ bool CPDF_Parser::ParseCrossRefV4(std::vector<CrossRefObjData>* out_objects) { while (1) { FX_FILESIZE SavedPos = m_pSyntax->GetPos(); bool bIsNumber; - CFX_ByteString word = m_pSyntax->GetNextWord(&bIsNumber); + ByteString word = m_pSyntax->GetNextWord(&bIsNumber); if (word.IsEmpty()) { return false; } @@ -884,7 +884,7 @@ bool CPDF_Parser::RebuildCrossRef() { m_ObjectInfo[pRef->GetRefObjNum()].pos != 0)) { auto it = pTrailer->begin(); while (it != pTrailer->end()) { - const CFX_ByteString& key = it->first; + const ByteString& key = it->first; CPDF_Object* pElement = it->second.get(); ++it; uint32_t dwObjNum = @@ -903,11 +903,10 @@ bool CPDF_Parser::RebuildCrossRef() { : std::move(pObj))); FX_FILESIZE dwSavePos = m_pSyntax->GetPos(); - CFX_ByteString strWord = m_pSyntax->GetKeyword(); + ByteString strWord = m_pSyntax->GetKeyword(); if (!strWord.Compare("startxref")) { bool bNumber; - CFX_ByteString bsOffset = - m_pSyntax->GetNextWord(&bNumber); + ByteString bsOffset = m_pSyntax->GetNextWord(&bNumber); if (bNumber) m_LastXRefOffset = FXSYS_atoi(bsOffset.c_str()); } @@ -1316,7 +1315,7 @@ bool CPDF_Parser::ParseLinearizedHeader() { FX_FILESIZE SavedPos = m_pSyntax->GetPos(); bool bIsNumber; - CFX_ByteString word = m_pSyntax->GetNextWord(&bIsNumber); + ByteString word = m_pSyntax->GetNextWord(&bIsNumber); if (!bIsNumber) return false; diff --git a/core/fpdfapi/parser/cpdf_parser.h b/core/fpdfapi/parser/cpdf_parser.h index b4d0bee329..20bd6be9b4 100644 --- a/core/fpdfapi/parser/cpdf_parser.h +++ b/core/fpdfapi/parser/cpdf_parser.h @@ -63,7 +63,7 @@ class CPDF_Parser { CPDF_Document* pDocument); void SetPassword(const char* password) { m_Password = password; } - CFX_ByteString GetPassword() { return m_Password; } + ByteString GetPassword() { return m_Password; } CPDF_Dictionary* GetTrailer() const; FX_FILESIZE GetLastXRefOffset() const { return m_LastXRefOffset; } @@ -199,7 +199,7 @@ class CPDF_Parser { CFX_UnownedPtr<CPDF_Dictionary> m_pEncryptDict; FX_FILESIZE m_LastXRefOffset; std::unique_ptr<CPDF_SecurityHandler> m_pSecurityHandler; - CFX_ByteString m_Password; + ByteString m_Password; std::unique_ptr<TrailerData> m_TrailerData; std::unique_ptr<CPDF_LinearizedHeader> m_pLinearized; uint32_t m_dwLinearizedFirstPageXRefStartObjNum; diff --git a/core/fpdfapi/parser/cpdf_reference.cpp b/core/fpdfapi/parser/cpdf_reference.cpp index ce4c308d8c..2ca0bddc4f 100644 --- a/core/fpdfapi/parser/cpdf_reference.cpp +++ b/core/fpdfapi/parser/cpdf_reference.cpp @@ -20,9 +20,9 @@ CPDF_Object::Type CPDF_Reference::GetType() const { return REFERENCE; } -CFX_ByteString CPDF_Reference::GetString() const { +ByteString CPDF_Reference::GetString() const { CPDF_Object* obj = SafeGetDirect(); - return obj ? obj->GetString() : CFX_ByteString(); + return obj ? obj->GetString() : ByteString(); } float CPDF_Reference::GetNumber() const { diff --git a/core/fpdfapi/parser/cpdf_reference.h b/core/fpdfapi/parser/cpdf_reference.h index ab160302fe..f564ab5b9b 100644 --- a/core/fpdfapi/parser/cpdf_reference.h +++ b/core/fpdfapi/parser/cpdf_reference.h @@ -24,7 +24,7 @@ class CPDF_Reference : public CPDF_Object { Type GetType() const override; std::unique_ptr<CPDF_Object> Clone() const override; CPDF_Object* GetDirect() const override; - CFX_ByteString GetString() const override; + ByteString GetString() const override; float GetNumber() const override; int GetInteger() const override; CPDF_Dictionary* GetDict() const override; diff --git a/core/fpdfapi/parser/cpdf_security_handler.cpp b/core/fpdfapi/parser/cpdf_security_handler.cpp index 03b90abf4a..b838e9cf05 100644 --- a/core/fpdfapi/parser/cpdf_security_handler.cpp +++ b/core/fpdfapi/parser/cpdf_security_handler.cpp @@ -42,12 +42,12 @@ void CalcEncryptKey(CPDF_Dictionary* pEncrypt, CRYPT_md5_context md5; CRYPT_MD5Start(&md5); CRYPT_MD5Update(&md5, passcode, 32); - CFX_ByteString okey = pEncrypt->GetStringFor("O"); + ByteString okey = pEncrypt->GetStringFor("O"); CRYPT_MD5Update(&md5, (uint8_t*)okey.c_str(), okey.GetLength()); uint32_t perm = pEncrypt->GetIntegerFor("P"); CRYPT_MD5Update(&md5, (uint8_t*)&perm, 4); if (pIdArray) { - CFX_ByteString id = pIdArray->GetStringAt(0); + ByteString id = pIdArray->GetStringAt(0); CRYPT_MD5Update(&md5, (uint8_t*)id.c_str(), id.GetLength()); } if (!bIgnoreMeta && revision >= 3 && @@ -97,7 +97,7 @@ bool CPDF_SecurityHandler::OnInit(CPDF_Parser* pParser, } bool CPDF_SecurityHandler::CheckSecurity(int32_t key_len) { - CFX_ByteString password = m_pParser->GetPassword(); + ByteString password = m_pParser->GetPassword(); if (!password.IsEmpty() && CheckPassword(password.raw_str(), password.GetLength(), true, m_EncryptKey, key_len)) { @@ -113,7 +113,7 @@ uint32_t CPDF_SecurityHandler::GetPermissions() { } static bool LoadCryptInfo(CPDF_Dictionary* pEncryptDict, - const CFX_ByteString& name, + const ByteString& name, int& cipher, int& keylen) { int Version = pEncryptDict->GetIntegerFor("V"); @@ -144,7 +144,7 @@ static bool LoadCryptInfo(CPDF_Dictionary* pEncryptDict, nKeyBits *= 8; } keylen = nKeyBits / 8; - CFX_ByteString cipher_name = pDefFilter->GetStringFor("CFM"); + ByteString cipher_name = pDefFilter->GetStringFor("CFM"); if (cipher_name == "AESV2" || cipher_name == "AESV3") { cipher = FXCIPHER_AES; } @@ -164,10 +164,10 @@ bool CPDF_SecurityHandler::LoadDict(CPDF_Dictionary* pEncryptDict) { m_Revision = pEncryptDict->GetIntegerFor("R"); m_Permissions = pEncryptDict->GetIntegerFor("P", -1); if (m_Version < 4) - return LoadCryptInfo(pEncryptDict, CFX_ByteString(), m_Cipher, m_KeyLen); + return LoadCryptInfo(pEncryptDict, ByteString(), m_Cipher, m_KeyLen); - CFX_ByteString stmf_name = pEncryptDict->GetStringFor("StmF"); - CFX_ByteString strf_name = pEncryptDict->GetStringFor("StrF"); + ByteString stmf_name = pEncryptDict->GetStringFor("StmF"); + ByteString strf_name = pEncryptDict->GetStringFor("StrF"); if (stmf_name != strf_name) return false; @@ -183,8 +183,8 @@ bool CPDF_SecurityHandler::LoadDict(CPDF_Dictionary* pEncryptDict, m_Revision = pEncryptDict->GetIntegerFor("R"); m_Permissions = pEncryptDict->GetIntegerFor("P", -1); - CFX_ByteString strf_name; - CFX_ByteString stmf_name; + ByteString strf_name; + ByteString stmf_name; if (m_Version >= 4) { stmf_name = pEncryptDict->GetStringFor("StmF"); strf_name = pEncryptDict->GetStringFor("StrF"); @@ -310,11 +310,11 @@ bool CPDF_SecurityHandler::AES256_CheckPassword(const uint8_t* password, if (!m_pEncryptDict) return false; - CFX_ByteString okey = m_pEncryptDict->GetStringFor("O"); + ByteString okey = m_pEncryptDict->GetStringFor("O"); if (okey.GetLength() < 48) return false; - CFX_ByteString ukey = m_pEncryptDict->GetStringFor("U"); + ByteString ukey = m_pEncryptDict->GetStringFor("U"); if (ukey.GetLength() < 48) return false; @@ -351,9 +351,9 @@ bool CPDF_SecurityHandler::AES256_CheckPassword(const uint8_t* password, CRYPT_SHA256Finish(&sha, digest); } - CFX_ByteString ekey = m_pEncryptDict - ? m_pEncryptDict->GetStringFor(bOwner ? "OE" : "UE") - : CFX_ByteString(); + ByteString ekey = m_pEncryptDict + ? m_pEncryptDict->GetStringFor(bOwner ? "OE" : "UE") + : ByteString(); if (ekey.GetLength() < 32) return false; @@ -366,7 +366,7 @@ bool CPDF_SecurityHandler::AES256_CheckPassword(const uint8_t* password, CRYPT_AESDecrypt(&aes, key, ekey.raw_str(), 32); CRYPT_AESSetKey(&aes, 16, key, 32, false); CRYPT_AESSetIV(&aes, iv); - CFX_ByteString perms = m_pEncryptDict->GetStringFor("Perms"); + ByteString perms = m_pEncryptDict->GetStringFor("Perms"); if (perms.IsEmpty()) return false; @@ -415,8 +415,8 @@ bool CPDF_SecurityHandler::CheckUserPassword(const uint8_t* password, int32_t key_len) { CalcEncryptKey(m_pEncryptDict.Get(), password, pass_size, key, key_len, bIgnoreEncryptMeta, m_pParser->GetIDArray()); - CFX_ByteString ukey = - m_pEncryptDict ? m_pEncryptDict->GetStringFor("U") : CFX_ByteString(); + ByteString ukey = + m_pEncryptDict ? m_pEncryptDict->GetStringFor("U") : ByteString(); if (ukey.GetLength() < 16) { return false; } @@ -443,7 +443,7 @@ bool CPDF_SecurityHandler::CheckUserPassword(const uint8_t* password, CRYPT_MD5Update(&md5, defpasscode, 32); CPDF_Array* pIdArray = m_pParser->GetIDArray(); if (pIdArray) { - CFX_ByteString id = pIdArray->GetStringAt(0); + ByteString id = pIdArray->GetStringAt(0); CRYPT_MD5Update(&md5, (uint8_t*)id.c_str(), id.GetLength()); } CRYPT_MD5Finish(&md5, ukeybuf); @@ -452,10 +452,10 @@ bool CPDF_SecurityHandler::CheckUserPassword(const uint8_t* password, return memcmp(ukey.c_str(), ukeybuf, 16) == 0; } -CFX_ByteString CPDF_SecurityHandler::GetUserPassword(const uint8_t* owner_pass, - uint32_t pass_size, - int32_t key_len) { - CFX_ByteString okey = m_pEncryptDict->GetStringFor("O"); +ByteString CPDF_SecurityHandler::GetUserPassword(const uint8_t* owner_pass, + uint32_t pass_size, + int32_t key_len) { + ByteString okey = m_pEncryptDict->GetStringFor("O"); uint8_t passcode[32]; for (uint32_t i = 0; i < 32; i++) { passcode[i] = i < pass_size ? owner_pass[i] : defpasscode[i - pass_size]; @@ -496,13 +496,13 @@ CFX_ByteString CPDF_SecurityHandler::GetUserPassword(const uint8_t* owner_pass, while (len && defpasscode[len - 1] == okeybuf[len - 1]) { len--; } - return CFX_ByteString(okeybuf, len); + return ByteString(okeybuf, len); } bool CPDF_SecurityHandler::CheckOwnerPassword(const uint8_t* password, uint32_t pass_size, uint8_t* key, int32_t key_len) { - CFX_ByteString user_pass = GetUserPassword(password, pass_size, key_len); + ByteString user_pass = GetUserPassword(password, pass_size, key_len); if (CheckUserPassword(user_pass.raw_str(), user_pass.GetLength(), false, key, key_len)) { return true; @@ -575,8 +575,7 @@ void CPDF_SecurityHandler::OnCreate(CPDF_Dictionary* pEncryptDict, CRYPT_ArcFourCryptBlock(passcode, 32, tempkey, key_len); } } - pEncryptDict->SetNewFor<CPDF_String>("O", CFX_ByteString(passcode, 32), - false); + pEncryptDict->SetNewFor<CPDF_String>("O", ByteString(passcode, 32), false); } CalcEncryptKey(m_pEncryptDict.Get(), (uint8_t*)user_pass, user_size, m_EncryptKey, key_len, false, pIdArray); @@ -584,14 +583,13 @@ void CPDF_SecurityHandler::OnCreate(CPDF_Dictionary* pEncryptDict, uint8_t tempbuf[32]; memcpy(tempbuf, defpasscode, 32); CRYPT_ArcFourCryptBlock(tempbuf, 32, m_EncryptKey, key_len); - pEncryptDict->SetNewFor<CPDF_String>("U", CFX_ByteString(tempbuf, 32), - false); + pEncryptDict->SetNewFor<CPDF_String>("U", ByteString(tempbuf, 32), false); } else { CRYPT_md5_context md5; CRYPT_MD5Start(&md5); CRYPT_MD5Update(&md5, defpasscode, 32); if (pIdArray) { - CFX_ByteString id = pIdArray->GetStringAt(0); + ByteString id = pIdArray->GetStringAt(0); CRYPT_MD5Update(&md5, (uint8_t*)id.c_str(), id.GetLength()); } uint8_t digest[32]; @@ -605,8 +603,7 @@ void CPDF_SecurityHandler::OnCreate(CPDF_Dictionary* pEncryptDict, CRYPT_ArcFourCryptBlock(digest, 16, tempkey, key_len); } CRYPT_MD5Generate(digest, 16, digest + 16); - pEncryptDict->SetNewFor<CPDF_String>("U", CFX_ByteString(digest, 32), - false); + pEncryptDict->SetNewFor<CPDF_String>("U", ByteString(digest, 32), false); } } void CPDF_SecurityHandler::OnCreate(CPDF_Dictionary* pEncryptDict, @@ -640,7 +637,7 @@ void CPDF_SecurityHandler::AES256_SetPassword(CPDF_Dictionary* pEncryptDict, uint8_t digest[20]; CRYPT_SHA1Finish(&sha, digest); - CFX_ByteString ukey = pEncryptDict->GetStringFor("U"); + ByteString ukey = pEncryptDict->GetStringFor("U"); CRYPT_sha2_context sha2; uint8_t digest1[48]; if (m_Revision >= 6) { @@ -657,7 +654,7 @@ void CPDF_SecurityHandler::AES256_SetPassword(CPDF_Dictionary* pEncryptDict, } memcpy(digest1 + 32, digest, 16); pEncryptDict->SetNewFor<CPDF_String>(bOwner ? "O" : "U", - CFX_ByteString(digest1, 48), false); + ByteString(digest1, 48), false); if (m_Revision >= 6) { Revision6_Hash(password, size, digest + 8, bOwner ? ukey.raw_str() : nullptr, digest1); @@ -678,7 +675,7 @@ void CPDF_SecurityHandler::AES256_SetPassword(CPDF_Dictionary* pEncryptDict, CRYPT_AESSetIV(&aes, iv); CRYPT_AESEncrypt(&aes, digest1, key, 32); pEncryptDict->SetNewFor<CPDF_String>(bOwner ? "OE" : "UE", - CFX_ByteString(digest1, 32), false); + ByteString(digest1, 32), false); } void CPDF_SecurityHandler::AES256_SetPerms(CPDF_Dictionary* pEncryptDict, @@ -709,6 +706,5 @@ void CPDF_SecurityHandler::AES256_SetPerms(CPDF_Dictionary* pEncryptDict, uint8_t buf1[16]; CRYPT_AESEncrypt(&aes, buf1, buf, 16); - pEncryptDict->SetNewFor<CPDF_String>("Perms", CFX_ByteString(buf1, 16), - false); + pEncryptDict->SetNewFor<CPDF_String>("Perms", ByteString(buf1, 16), false); } diff --git a/core/fpdfapi/parser/cpdf_security_handler.h b/core/fpdfapi/parser/cpdf_security_handler.h index 27f7f7c610..eb7d13f2e6 100644 --- a/core/fpdfapi/parser/cpdf_security_handler.h +++ b/core/fpdfapi/parser/cpdf_security_handler.h @@ -46,9 +46,9 @@ class CPDF_SecurityHandler { uint32_t user_size, uint32_t type = PDF_ENCRYPT_CONTENT); - CFX_ByteString GetUserPassword(const uint8_t* owner_pass, - uint32_t pass_size, - int32_t key_len); + ByteString GetUserPassword(const uint8_t* owner_pass, + uint32_t pass_size, + int32_t key_len); bool CheckPassword(const uint8_t* password, uint32_t pass_size, bool bOwner, diff --git a/core/fpdfapi/parser/cpdf_simple_parser.cpp b/core/fpdfapi/parser/cpdf_simple_parser.cpp index 650c216e05..d800796d58 100644 --- a/core/fpdfapi/parser/cpdf_simple_parser.cpp +++ b/core/fpdfapi/parser/cpdf_simple_parser.cpp @@ -11,7 +11,7 @@ CPDF_SimpleParser::CPDF_SimpleParser(const uint8_t* pData, uint32_t dwSize) : m_pData(pData), m_dwSize(dwSize), m_dwCurPos(0) {} -CPDF_SimpleParser::CPDF_SimpleParser(const CFX_ByteStringC& str) +CPDF_SimpleParser::CPDF_SimpleParser(const ByteStringView& str) : m_pData(str.raw_str()), m_dwSize(str.GetLength()), m_dwCurPos(0) {} void CPDF_SimpleParser::ParseWord(const uint8_t*& pStart, uint32_t& dwSize) { @@ -91,7 +91,7 @@ void CPDF_SimpleParser::ParseWord(const uint8_t*& pStart, uint32_t& dwSize) { } } -CFX_ByteStringC CPDF_SimpleParser::GetWord() { +ByteStringView CPDF_SimpleParser::GetWord() { const uint8_t* pStart; uint32_t dwSize; ParseWord(pStart, dwSize); @@ -102,8 +102,8 @@ CFX_ByteStringC CPDF_SimpleParser::GetWord() { if (m_dwCurPos < m_dwSize) { m_dwCurPos++; } - return CFX_ByteStringC(pStart, - (FX_STRSIZE)(m_dwCurPos - (pStart - m_pData))); + return ByteStringView(pStart, + (FX_STRSIZE)(m_dwCurPos - (pStart - m_pData))); } if (dwSize == 1 && pStart[0] == '(') { int level = 1; @@ -130,13 +130,13 @@ CFX_ByteStringC CPDF_SimpleParser::GetWord() { if (m_dwCurPos < m_dwSize) { m_dwCurPos++; } - return CFX_ByteStringC(pStart, - (FX_STRSIZE)(m_dwCurPos - (pStart - m_pData))); + return ByteStringView(pStart, + (FX_STRSIZE)(m_dwCurPos - (pStart - m_pData))); } - return CFX_ByteStringC(pStart, dwSize); + return ByteStringView(pStart, dwSize); } -bool CPDF_SimpleParser::FindTagParamFromStart(const CFX_ByteStringC& token, +bool CPDF_SimpleParser::FindTagParamFromStart(const ByteStringView& token, int nParams) { nParams++; uint32_t* pBuf = FX_Alloc(uint32_t, nParams); @@ -152,7 +152,7 @@ bool CPDF_SimpleParser::FindTagParamFromStart(const CFX_ByteStringC& token, if (buf_count > nParams) { buf_count = nParams; } - CFX_ByteStringC word = GetWord(); + ByteStringView word = GetWord(); if (word.IsEmpty()) { FX_Free(pBuf); return false; diff --git a/core/fpdfapi/parser/cpdf_simple_parser.h b/core/fpdfapi/parser/cpdf_simple_parser.h index 0ff6985660..72cf700f60 100644 --- a/core/fpdfapi/parser/cpdf_simple_parser.h +++ b/core/fpdfapi/parser/cpdf_simple_parser.h @@ -13,13 +13,13 @@ class CPDF_SimpleParser { public: CPDF_SimpleParser(const uint8_t* pData, uint32_t dwSize); - explicit CPDF_SimpleParser(const CFX_ByteStringC& str); + explicit CPDF_SimpleParser(const ByteStringView& str); - CFX_ByteStringC GetWord(); + ByteStringView GetWord(); // Find the token and its |nParams| parameters from the start of data, // and move the current position to the start of those parameters. - bool FindTagParamFromStart(const CFX_ByteStringC& token, int nParams); + bool FindTagParamFromStart(const ByteStringView& token, int nParams); // For testing only. uint32_t GetCurPos() const { return m_dwCurPos; } diff --git a/core/fpdfapi/parser/cpdf_simple_parser_unittest.cpp b/core/fpdfapi/parser/cpdf_simple_parser_unittest.cpp index bdb532d3e0..a2f43386e7 100644 --- a/core/fpdfapi/parser/cpdf_simple_parser_unittest.cpp +++ b/core/fpdfapi/parser/cpdf_simple_parser_unittest.cpp @@ -50,7 +50,7 @@ TEST(SimpleParserTest, GetWord) { for (size_t i = 0; i < FX_ArraySize(test_data); ++i) { const pdfium::StrFuncTestData& data = test_data[i]; CPDF_SimpleParser parser(data.input, data.input_size); - CFX_ByteStringC word = parser.GetWord(); + ByteStringView word = parser.GetWord(); EXPECT_EQ(std::string(reinterpret_cast<const char*>(data.expected), data.expected_size), std::string(word.unterminated_c_str(), word.GetLength())) diff --git a/core/fpdfapi/parser/cpdf_stream.cpp b/core/fpdfapi/parser/cpdf_stream.cpp index fadaec1b7e..c00096df8b 100644 --- a/core/fpdfapi/parser/cpdf_stream.cpp +++ b/core/fpdfapi/parser/cpdf_stream.cpp @@ -145,7 +145,7 @@ bool CPDF_Stream::HasFilter() const { return m_pDict && m_pDict->KeyExist("Filter"); } -CFX_WideString CPDF_Stream::GetUnicodeText() const { +WideString CPDF_Stream::GetUnicodeText() const { auto pAcc = pdfium::MakeRetain<CPDF_StreamAcc>(this); pAcc->LoadAllData(false); return PDF_DecodeText(pAcc->GetData(), pAcc->GetSize()); diff --git a/core/fpdfapi/parser/cpdf_stream.h b/core/fpdfapi/parser/cpdf_stream.h index 3c3b674a48..be70e05e72 100644 --- a/core/fpdfapi/parser/cpdf_stream.h +++ b/core/fpdfapi/parser/cpdf_stream.h @@ -30,7 +30,7 @@ class CPDF_Stream : public CPDF_Object { Type GetType() const override; std::unique_ptr<CPDF_Object> Clone() const override; CPDF_Dictionary* GetDict() const override; - CFX_WideString GetUnicodeText() const override; + WideString GetUnicodeText() const override; bool IsStream() const override; CPDF_Stream* AsStream() override; const CPDF_Stream* AsStream() const override; diff --git a/core/fpdfapi/parser/cpdf_stream_acc.h b/core/fpdfapi/parser/cpdf_stream_acc.h index bc03cb097b..2161dd1950 100644 --- a/core/fpdfapi/parser/cpdf_stream_acc.h +++ b/core/fpdfapi/parser/cpdf_stream_acc.h @@ -34,7 +34,7 @@ class CPDF_StreamAcc : public CFX_Retainable { const uint8_t* GetData() const; uint32_t GetSize() const; - const CFX_ByteString& GetImageDecoder() const { return m_ImageDecoder; } + const ByteString& GetImageDecoder() const { return m_ImageDecoder; } const CPDF_Dictionary* GetImageParam() const { return m_pImageParam; } std::unique_ptr<uint8_t, FxFreeDeleter> DetachData(); @@ -45,7 +45,7 @@ class CPDF_StreamAcc : public CFX_Retainable { uint8_t* m_pData; uint32_t m_dwSize; bool m_bNewBuf; - CFX_ByteString m_ImageDecoder; + ByteString m_ImageDecoder; CPDF_Dictionary* m_pImageParam; CFX_UnownedPtr<const CPDF_Stream> const m_pStream; uint8_t* m_pSrcData; diff --git a/core/fpdfapi/parser/cpdf_string.cpp b/core/fpdfapi/parser/cpdf_string.cpp index 6ce6bf3473..1539861622 100644 --- a/core/fpdfapi/parser/cpdf_string.cpp +++ b/core/fpdfapi/parser/cpdf_string.cpp @@ -14,16 +14,16 @@ CPDF_String::CPDF_String() : m_bHex(false) {} -CPDF_String::CPDF_String(CFX_WeakPtr<CFX_ByteStringPool> pPool, - const CFX_ByteString& str, +CPDF_String::CPDF_String(CFX_WeakPtr<ByteStringPool> pPool, + const ByteString& str, bool bHex) : m_String(str), m_bHex(bHex) { if (pPool) m_String = pPool->Intern(m_String); } -CPDF_String::CPDF_String(CFX_WeakPtr<CFX_ByteStringPool> pPool, - const CFX_WideString& str) +CPDF_String::CPDF_String(CFX_WeakPtr<ByteStringPool> pPool, + const WideString& str) : m_String(PDF_EncodeText(str)), m_bHex(false) { if (pPool) m_String = pPool->Intern(m_String); @@ -42,11 +42,11 @@ std::unique_ptr<CPDF_Object> CPDF_String::Clone() const { return std::move(pRet); } -CFX_ByteString CPDF_String::GetString() const { +ByteString CPDF_String::GetString() const { return m_String; } -void CPDF_String::SetString(const CFX_ByteString& str) { +void CPDF_String::SetString(const ByteString& str) { m_String = str; } @@ -62,11 +62,11 @@ const CPDF_String* CPDF_String::AsString() const { return this; } -CFX_WideString CPDF_String::GetUnicodeText() const { +WideString CPDF_String::GetUnicodeText() const { return PDF_DecodeText(m_String); } bool CPDF_String::WriteTo(IFX_ArchiveStream* archive) const { return archive->WriteString( - PDF_EncodeString(GetString(), IsHex()).AsStringC()); + PDF_EncodeString(GetString(), IsHex()).AsStringView()); } diff --git a/core/fpdfapi/parser/cpdf_string.h b/core/fpdfapi/parser/cpdf_string.h index ccd6f530c1..9fd3e6ae8a 100644 --- a/core/fpdfapi/parser/cpdf_string.h +++ b/core/fpdfapi/parser/cpdf_string.h @@ -18,18 +18,18 @@ class CPDF_String : public CPDF_Object { public: CPDF_String(); - CPDF_String(CFX_WeakPtr<CFX_ByteStringPool> pPool, - const CFX_ByteString& str, + CPDF_String(CFX_WeakPtr<ByteStringPool> pPool, + const ByteString& str, bool bHex); - CPDF_String(CFX_WeakPtr<CFX_ByteStringPool> pPool, const CFX_WideString& str); + CPDF_String(CFX_WeakPtr<ByteStringPool> pPool, const WideString& str); ~CPDF_String() override; // CPDF_Object: Type GetType() const override; std::unique_ptr<CPDF_Object> Clone() const override; - CFX_ByteString GetString() const override; - CFX_WideString GetUnicodeText() const override; - void SetString(const CFX_ByteString& str) override; + ByteString GetString() const override; + WideString GetUnicodeText() const override; + void SetString(const ByteString& str) override; bool IsString() const override; CPDF_String* AsString() override; const CPDF_String* AsString() const override; @@ -38,7 +38,7 @@ class CPDF_String : public CPDF_Object { bool IsHex() const { return m_bHex; } protected: - CFX_ByteString m_String; + ByteString m_String; bool m_bHex; }; diff --git a/core/fpdfapi/parser/cpdf_syntax_parser.cpp b/core/fpdfapi/parser/cpdf_syntax_parser.cpp index 779bf81e0f..4412105c7b 100644 --- a/core/fpdfapi/parser/cpdf_syntax_parser.cpp +++ b/core/fpdfapi/parser/cpdf_syntax_parser.cpp @@ -41,10 +41,9 @@ enum class ReadStatus { Normal, Backslash, Octal, FinishOctal, CarriageReturn }; int CPDF_SyntaxParser::s_CurrentRecursionDepth = 0; CPDF_SyntaxParser::CPDF_SyntaxParser() - : CPDF_SyntaxParser(CFX_WeakPtr<CFX_ByteStringPool>()) {} + : CPDF_SyntaxParser(CFX_WeakPtr<ByteStringPool>()) {} -CPDF_SyntaxParser::CPDF_SyntaxParser( - const CFX_WeakPtr<CFX_ByteStringPool>& pPool) +CPDF_SyntaxParser::CPDF_SyntaxParser(const CFX_WeakPtr<ByteStringPool>& pPool) : m_MetadataObjnum(0), m_pFileAccess(nullptr), m_pFileBuf(nullptr), @@ -187,10 +186,10 @@ void CPDF_SyntaxParser::GetNextWordInternal(bool* bIsNumber) { } } -CFX_ByteString CPDF_SyntaxParser::ReadString() { +ByteString CPDF_SyntaxParser::ReadString() { uint8_t ch; if (!GetNextChar(ch)) - return CFX_ByteString(); + return ByteString(); std::ostringstream buf; int32_t parlevel = 0; @@ -201,7 +200,7 @@ CFX_ByteString CPDF_SyntaxParser::ReadString() { case ReadStatus::Normal: if (ch == ')') { if (parlevel == 0) - return CFX_ByteString(buf); + return ByteString(buf); parlevel--; } else if (ch == '(') { parlevel++; @@ -270,13 +269,13 @@ CFX_ByteString CPDF_SyntaxParser::ReadString() { } GetNextChar(ch); - return CFX_ByteString(buf); + return ByteString(buf); } -CFX_ByteString CPDF_SyntaxParser::ReadHexString() { +ByteString CPDF_SyntaxParser::ReadHexString() { uint8_t ch; if (!GetNextChar(ch)) - return CFX_ByteString(); + return ByteString(); std::ostringstream buf; bool bFirst = true; @@ -302,7 +301,7 @@ CFX_ByteString CPDF_SyntaxParser::ReadHexString() { if (!bFirst) buf << static_cast<char>(code); - return CFX_ByteString(buf); + return ByteString(buf); } void CPDF_SyntaxParser::ToNextLine() { @@ -344,20 +343,20 @@ void CPDF_SyntaxParser::ToNextWord() { m_Pos--; } -CFX_ByteString CPDF_SyntaxParser::GetNextWord(bool* bIsNumber) { +ByteString CPDF_SyntaxParser::GetNextWord(bool* bIsNumber) { const CPDF_ReadValidator::Session read_session(GetValidator().Get()); GetNextWordInternal(bIsNumber); return GetValidator()->has_read_problems() - ? CFX_ByteString() - : CFX_ByteString((const char*)m_WordBuffer, m_WordSize); + ? ByteString() + : ByteString((const char*)m_WordBuffer, m_WordSize); } -CFX_ByteString CPDF_SyntaxParser::PeekNextWord(bool* bIsNumber) { +ByteString CPDF_SyntaxParser::PeekNextWord(bool* bIsNumber) { const CFX_AutoRestorer<FX_FILESIZE> save_pos(&m_Pos); return GetNextWord(bIsNumber); } -CFX_ByteString CPDF_SyntaxParser::GetKeyword() { +ByteString CPDF_SyntaxParser::GetKeyword() { return GetNextWord(nullptr); } @@ -386,15 +385,15 @@ std::unique_ptr<CPDF_Object> CPDF_SyntaxParser::GetObjectInternal( FX_FILESIZE SavedObjPos = m_Pos; bool bIsNumber; - CFX_ByteString word = GetNextWord(&bIsNumber); + ByteString word = GetNextWord(&bIsNumber); if (word.GetLength() == 0) return nullptr; if (bIsNumber) { FX_FILESIZE SavedPos = m_Pos; - CFX_ByteString nextword = GetNextWord(&bIsNumber); + ByteString nextword = GetNextWord(&bIsNumber); if (bIsNumber) { - CFX_ByteString nextword2 = GetNextWord(nullptr); + ByteString nextword2 = GetNextWord(nullptr); if (nextword2 == "R") { uint32_t refnum = FXSYS_atoui(word.c_str()); if (refnum == CPDF_Object::kInvalidObjNum) @@ -403,7 +402,7 @@ std::unique_ptr<CPDF_Object> CPDF_SyntaxParser::GetObjectInternal( } } m_Pos = SavedPos; - return pdfium::MakeUnique<CPDF_Number>(word.AsStringC()); + return pdfium::MakeUnique<CPDF_Number>(word.AsStringView()); } if (word == "true" || word == "false") @@ -413,13 +412,13 @@ std::unique_ptr<CPDF_Object> CPDF_SyntaxParser::GetObjectInternal( return pdfium::MakeUnique<CPDF_Null>(); if (word == "(") { - CFX_ByteString str = ReadString(); + ByteString str = ReadString(); if (m_pCryptoHandler && bDecrypt) str = m_pCryptoHandler->Decrypt(objnum, gennum, str); return pdfium::MakeUnique<CPDF_String>(m_pPool, str, false); } if (word == "<") { - CFX_ByteString str = ReadHexString(); + ByteString str = ReadHexString(); if (m_pCryptoHandler && bDecrypt) str = m_pCryptoHandler->Decrypt(objnum, gennum, str); return pdfium::MakeUnique<CPDF_String>(m_pPool, str, true); @@ -437,14 +436,14 @@ std::unique_ptr<CPDF_Object> CPDF_SyntaxParser::GetObjectInternal( if (word[0] == '/') { return pdfium::MakeUnique<CPDF_Name>( m_pPool, - PDF_NameDecode(CFX_ByteStringC(m_WordBuffer + 1, m_WordSize - 1))); + PDF_NameDecode(ByteStringView(m_WordBuffer + 1, m_WordSize - 1))); } if (word == "<<") { FX_FILESIZE dwSignValuePos = 0; std::unique_ptr<CPDF_Dictionary> pDict = pdfium::MakeUnique<CPDF_Dictionary>(m_pPool); while (1) { - CFX_ByteString key = GetNextWord(nullptr); + ByteString key = GetNextWord(nullptr); if (key.IsEmpty()) return nullptr; @@ -477,7 +476,7 @@ std::unique_ptr<CPDF_Object> CPDF_SyntaxParser::GetObjectInternal( } if (!key.IsEmpty()) { - CFX_ByteString keyNoSlash(key.raw_str() + 1, key.GetLength() - 1); + ByteString keyNoSlash(key.raw_str() + 1, key.GetLength() - 1); pDict->SetFor(keyNoSlash, std::move(pObj)); } } @@ -492,7 +491,7 @@ std::unique_ptr<CPDF_Object> CPDF_SyntaxParser::GetObjectInternal( } FX_FILESIZE SavedPos = m_Pos; - CFX_ByteString nextword = GetNextWord(nullptr); + ByteString nextword = GetNextWord(nullptr); if (nextword != "stream") { m_Pos = SavedPos; return std::move(pDict); @@ -526,7 +525,7 @@ std::unique_ptr<CPDF_Object> CPDF_SyntaxParser::GetIndirectObject( const CPDF_ReadValidator::Session read_session(GetValidator().Get()); const FX_FILESIZE saved_pos = GetPos(); bool is_number = false; - CFX_ByteString word = GetNextWord(&is_number); + ByteString word = GetNextWord(&is_number); if (!is_number || word.IsEmpty()) { SetPos(saved_pos); return nullptr; @@ -588,8 +587,8 @@ std::unique_ptr<CPDF_Stream> CPDF_SyntaxParser::ReadStream( ToNextLine(); FX_FILESIZE streamStartPos = m_Pos; - const CFX_ByteStringC kEndStreamStr("endstream"); - const CFX_ByteStringC kEndObjStr("endobj"); + const ByteStringView kEndStreamStr("endstream"); + const ByteStringView kEndObjStr("endobj"); CPDF_CryptoHandler* pCryptoHandler = objnum == m_MetadataObjnum ? nullptr : m_pCryptoHandler.Get(); @@ -757,7 +756,7 @@ uint32_t CPDF_SyntaxParser::GetDirectNum() { bool CPDF_SyntaxParser::IsWholeWord(FX_FILESIZE startpos, FX_FILESIZE limit, - const CFX_ByteStringC& tag, + const ByteStringView& tag, bool checkKeyword) { const uint32_t taglen = tag.GetLength(); @@ -783,7 +782,7 @@ bool CPDF_SyntaxParser::IsWholeWord(FX_FILESIZE startpos, return true; } -bool CPDF_SyntaxParser::BackwardsSearchToWord(const CFX_ByteStringC& tag, +bool CPDF_SyntaxParser::BackwardsSearchToWord(const ByteStringView& tag, FX_FILESIZE limit) { int32_t taglen = tag.GetLength(); if (taglen == 0) @@ -817,7 +816,7 @@ bool CPDF_SyntaxParser::BackwardsSearchToWord(const CFX_ByteStringC& tag, } } -FX_FILESIZE CPDF_SyntaxParser::FindTag(const CFX_ByteStringC& tag, +FX_FILESIZE CPDF_SyntaxParser::FindTag(const ByteStringView& tag, FX_FILESIZE limit) { int32_t taglen = tag.GetLength(); int32_t match = 0; diff --git a/core/fpdfapi/parser/cpdf_syntax_parser.h b/core/fpdfapi/parser/cpdf_syntax_parser.h index 179058edf8..4e28c2fb92 100644 --- a/core/fpdfapi/parser/cpdf_syntax_parser.h +++ b/core/fpdfapi/parser/cpdf_syntax_parser.h @@ -26,7 +26,7 @@ class CPDF_SyntaxParser { enum class ParseType { kStrict, kLoose }; CPDF_SyntaxParser(); - explicit CPDF_SyntaxParser(const CFX_WeakPtr<CFX_ByteStringPool>& pPool); + explicit CPDF_SyntaxParser(const CFX_WeakPtr<ByteStringPool>& pPool); ~CPDF_SyntaxParser(); void InitParser(const CFX_RetainPtr<IFX_SeekableReadStream>& pFileAccess, @@ -56,16 +56,16 @@ class CPDF_SyntaxParser { bool bDecrypt, ParseType parse_type); - CFX_ByteString GetKeyword(); + ByteString GetKeyword(); void ToNextLine(); void ToNextWord(); - bool BackwardsSearchToWord(const CFX_ByteStringC& word, FX_FILESIZE limit); - FX_FILESIZE FindTag(const CFX_ByteStringC& tag, FX_FILESIZE limit); + bool BackwardsSearchToWord(const ByteStringView& word, FX_FILESIZE limit); + FX_FILESIZE FindTag(const ByteStringView& tag, FX_FILESIZE limit); void SetEncrypt(const CFX_RetainPtr<CPDF_CryptoHandler>& pCryptoHandler); bool ReadBlock(uint8_t* pBuf, uint32_t size); bool GetCharAt(FX_FILESIZE pos, uint8_t& ch); - CFX_ByteString GetNextWord(bool* bIsNumber); - CFX_ByteString PeekNextWord(bool* bIsNumber); + ByteString GetNextWord(bool* bIsNumber); + ByteString PeekNextWord(bool* bIsNumber); CFX_RetainPtr<IFX_SeekableReadStream> GetFileAccess() const; @@ -88,11 +88,11 @@ class CPDF_SyntaxParser { void GetNextWordInternal(bool* bIsNumber); bool IsWholeWord(FX_FILESIZE startpos, FX_FILESIZE limit, - const CFX_ByteStringC& tag, + const ByteStringView& tag, bool checkKeyword); - CFX_ByteString ReadString(); - CFX_ByteString ReadHexString(); + ByteString ReadString(); + ByteString ReadHexString(); unsigned int ReadEOLMarkers(FX_FILESIZE pos); std::unique_ptr<CPDF_Stream> ReadStream( std::unique_ptr<CPDF_Dictionary> pDict, @@ -122,7 +122,7 @@ class CPDF_SyntaxParser { CFX_RetainPtr<CPDF_CryptoHandler> m_pCryptoHandler; uint8_t m_WordBuffer[257]; uint32_t m_WordSize; - CFX_WeakPtr<CFX_ByteStringPool> m_pPool; + CFX_WeakPtr<ByteStringPool> m_pPool; }; #endif // CORE_FPDFAPI_PARSER_CPDF_SYNTAX_PARSER_H_ diff --git a/core/fpdfapi/parser/fpdf_parser_decode.cpp b/core/fpdfapi/parser/fpdf_parser_decode.cpp index 77024f2f09..0180aaf749 100644 --- a/core/fpdfapi/parser/fpdf_parser_decode.cpp +++ b/core/fpdfapi/parser/fpdf_parser_decode.cpp @@ -328,7 +328,7 @@ bool PDF_DataDecode(const uint8_t* src_buf, bool bImageAcc, uint8_t** dest_buf, uint32_t* dest_size, - CFX_ByteString* ImageEncoding, + ByteString* ImageEncoding, CPDF_Dictionary** pImageParms) { CPDF_Object* pDecoder = pDict ? pDict->GetDirectObjectFor("Filter") : nullptr; if (!pDecoder || (!pDecoder->IsArray() && !pDecoder->IsName())) @@ -337,7 +337,7 @@ bool PDF_DataDecode(const uint8_t* src_buf, CPDF_Object* pParams = pDict ? pDict->GetDirectObjectFor("DecodeParms") : nullptr; - std::vector<std::pair<CFX_ByteString, CPDF_Object*>> DecoderArray; + std::vector<std::pair<ByteString, CPDF_Object*>> DecoderArray; if (CPDF_Array* pDecoders = pDecoder->AsArray()) { CPDF_Array* pParamsArray = ToArray(pParams); for (size_t i = 0; i < pDecoders->GetCount(); ++i) { @@ -354,7 +354,7 @@ bool PDF_DataDecode(const uint8_t* src_buf, int nSize = pdfium::CollectionSize<int>(DecoderArray); for (int i = 0; i < nSize; ++i) { int estimated_size = i == nSize - 1 ? last_estimated_size : 0; - CFX_ByteString decoder = DecoderArray[i].first; + ByteString decoder = DecoderArray[i].first; CPDF_Dictionary* pParam = ToDictionary(DecoderArray[i].second); uint8_t* new_buf = nullptr; uint32_t new_size = 0xFFFFFFFF; @@ -415,8 +415,8 @@ bool PDF_DataDecode(const uint8_t* src_buf, return true; } -CFX_WideString PDF_DecodeText(const uint8_t* src_data, uint32_t src_len) { - CFX_WideString result; +WideString PDF_DecodeText(const uint8_t* src_data, uint32_t src_len) { + WideString result; if (src_len >= 2 && ((src_data[0] == 0xfe && src_data[1] == 0xff) || (src_data[0] == 0xff && src_data[1] == 0xfe))) { bool bBE = src_data[0] == 0xfe; @@ -455,16 +455,16 @@ CFX_WideString PDF_DecodeText(const uint8_t* src_data, uint32_t src_len) { return result; } -CFX_WideString PDF_DecodeText(const CFX_ByteString& bstr) { +WideString PDF_DecodeText(const ByteString& bstr) { return PDF_DecodeText(reinterpret_cast<const uint8_t*>(bstr.c_str()), bstr.GetLength()); } -CFX_ByteString PDF_EncodeText(const wchar_t* pString, int len) { +ByteString PDF_EncodeText(const wchar_t* pString, int len) { if (len == -1) len = FXSYS_wcslen(pString); - CFX_ByteString result; + ByteString result; char* dest_buf1 = result.GetBuffer(len); int i; for (i = 0; i < len; ++i) { @@ -502,11 +502,11 @@ CFX_ByteString PDF_EncodeText(const wchar_t* pString, int len) { return result; } -CFX_ByteString PDF_EncodeText(const CFX_WideString& str) { +ByteString PDF_EncodeText(const WideString& str) { return PDF_EncodeText(str.c_str(), str.GetLength()); } -CFX_ByteString PDF_EncodeString(const CFX_ByteString& src, bool bHex) { +ByteString PDF_EncodeString(const ByteString& src, bool bHex) { std::ostringstream result; int srclen = src.GetLength(); if (bHex) { @@ -518,7 +518,7 @@ CFX_ByteString PDF_EncodeString(const CFX_ByteString& src, bool bHex) { result << buf[1]; } result << '>'; - return CFX_ByteString(result); + return ByteString(result); } result << '('; for (int i = 0; i < srclen; ++i) { @@ -536,7 +536,7 @@ CFX_ByteString PDF_EncodeString(const CFX_ByteString& src, bool bHex) { result << static_cast<char>(ch); } result << ')'; - return CFX_ByteString(result); + return ByteString(result); } bool FlateEncode(const uint8_t* src_buf, diff --git a/core/fpdfapi/parser/fpdf_parser_decode.h b/core/fpdfapi/parser/fpdf_parser_decode.h index 23ca0a0fae..6650b68c06 100644 --- a/core/fpdfapi/parser/fpdf_parser_decode.h +++ b/core/fpdfapi/parser/fpdf_parser_decode.h @@ -17,14 +17,14 @@ class CPDF_Dictionary; // Indexed by 8-bit char code, contains unicode code points. extern const uint16_t PDFDocEncoding[256]; -CFX_ByteString PDF_NameDecode(const CFX_ByteStringC& orig); -CFX_ByteString PDF_NameDecode(const CFX_ByteString& orig); -CFX_ByteString PDF_NameEncode(const CFX_ByteString& orig); -CFX_ByteString PDF_EncodeString(const CFX_ByteString& src, bool bHex); -CFX_WideString PDF_DecodeText(const uint8_t* pData, uint32_t size); -CFX_WideString PDF_DecodeText(const CFX_ByteString& bstr); -CFX_ByteString PDF_EncodeText(const wchar_t* pString, int len); -CFX_ByteString PDF_EncodeText(const CFX_WideString& str); +ByteString PDF_NameDecode(const ByteStringView& orig); +ByteString PDF_NameDecode(const ByteString& orig); +ByteString PDF_NameEncode(const ByteString& orig); +ByteString PDF_EncodeString(const ByteString& src, bool bHex); +WideString PDF_DecodeText(const uint8_t* pData, uint32_t size); +WideString PDF_DecodeText(const ByteString& bstr); +ByteString PDF_EncodeText(const wchar_t* pString, int len); +ByteString PDF_EncodeText(const WideString& str); bool FlateEncode(const uint8_t* src_buf, uint32_t src_size, @@ -90,7 +90,7 @@ bool PDF_DataDecode(const uint8_t* src_buf, bool bImageAcc, uint8_t** dest_buf, uint32_t* dest_size, - CFX_ByteString* ImageEncoding, + ByteString* ImageEncoding, CPDF_Dictionary** pImageParms); #endif // CORE_FPDFAPI_PARSER_FPDF_PARSER_DECODE_H_ diff --git a/core/fpdfapi/parser/fpdf_parser_decode_unittest.cpp b/core/fpdfapi/parser/fpdf_parser_decode_unittest.cpp index c8e0c7a0e1..ae30959013 100644 --- a/core/fpdfapi/parser/fpdf_parser_decode_unittest.cpp +++ b/core/fpdfapi/parser/fpdf_parser_decode_unittest.cpp @@ -99,7 +99,7 @@ TEST(fpdf_parser_decode, EncodeText) { for (size_t i = 0; i < FX_ArraySize(test_data); ++i) { const auto& test_case = test_data[i]; - CFX_ByteString output = PDF_EncodeText(test_case.input); + ByteString output = PDF_EncodeText(test_case.input); ASSERT_EQ(test_case.expected_length, output.GetLength()) << "for case " << i; const char* str_ptr = output.c_str(); diff --git a/core/fpdfapi/parser/fpdf_parser_utility.cpp b/core/fpdfapi/parser/fpdf_parser_utility.cpp index c6487f55a0..82804528ab 100644 --- a/core/fpdfapi/parser/fpdf_parser_utility.cpp +++ b/core/fpdfapi/parser/fpdf_parser_utility.cpp @@ -84,17 +84,17 @@ int32_t GetHeaderOffset(const CFX_RetainPtr<IFX_SeekableReadStream>& pFile) { return kInvalidHeaderOffset; } -int32_t GetDirectInteger(CPDF_Dictionary* pDict, const CFX_ByteString& key) { +int32_t GetDirectInteger(CPDF_Dictionary* pDict, const ByteString& key) { CPDF_Number* pObj = ToNumber(pDict->GetObjectFor(key)); return pObj ? pObj->GetInteger() : 0; } -CFX_ByteString PDF_NameDecode(const CFX_ByteStringC& bstr) { +ByteString PDF_NameDecode(const ByteStringView& bstr) { if (!bstr.Contains('#')) - return CFX_ByteString(bstr); + return ByteString(bstr); int size = bstr.GetLength(); - CFX_ByteString result; + ByteString result; char* pDestStart = result.GetBuffer(size); char* pDest = pDestStart; for (int i = 0; i < size; i++) { @@ -110,11 +110,11 @@ CFX_ByteString PDF_NameDecode(const CFX_ByteStringC& bstr) { return result; } -CFX_ByteString PDF_NameDecode(const CFX_ByteString& orig) { - return orig.Contains("#") ? PDF_NameDecode(orig.AsStringC()) : orig; +ByteString PDF_NameDecode(const ByteString& orig) { + return orig.Contains("#") ? PDF_NameDecode(orig.AsStringView()) : orig; } -CFX_ByteString PDF_NameEncode(const CFX_ByteString& orig) { +ByteString PDF_NameEncode(const ByteString& orig) { uint8_t* src_buf = (uint8_t*)orig.c_str(); int src_len = orig.GetLength(); int dest_len = 0; @@ -131,7 +131,7 @@ CFX_ByteString PDF_NameEncode(const CFX_ByteString& orig) { if (dest_len == src_len) return orig; - CFX_ByteString res; + ByteString res; char* dest_buf = res.GetBuffer(dest_len); dest_len = 0; for (i = 0; i < src_len; i++) { @@ -167,7 +167,7 @@ std::ostream& operator<<(std::ostream& buf, const CPDF_Object* pObj) { buf << PDF_EncodeString(pObj->GetString(), pObj->AsString()->IsHex()); break; case CPDF_Object::NAME: { - CFX_ByteString str = pObj->GetString(); + ByteString str = pObj->GetString(); buf << "/" << PDF_NameEncode(str); break; } @@ -193,7 +193,7 @@ std::ostream& operator<<(std::ostream& buf, const CPDF_Object* pObj) { const CPDF_Dictionary* p = pObj->AsDictionary(); buf << "<<"; for (const auto& it : *p) { - const CFX_ByteString& key = it.first; + const ByteString& key = it.first; CPDF_Object* pValue = it.second.get(); buf << "/" << PDF_NameEncode(key); if (pValue && !pValue->IsInline()) { diff --git a/core/fpdfapi/parser/fpdf_parser_utility.h b/core/fpdfapi/parser/fpdf_parser_utility.h index 94ee1fcfd3..5f85551a53 100644 --- a/core/fpdfapi/parser/fpdf_parser_utility.h +++ b/core/fpdfapi/parser/fpdf_parser_utility.h @@ -41,7 +41,7 @@ constexpr int32_t kInvalidHeaderOffset = -1; // |kInvalidHeaderOffset|. int32_t GetHeaderOffset(const CFX_RetainPtr<IFX_SeekableReadStream>& pFile); -int32_t GetDirectInteger(CPDF_Dictionary* pDict, const CFX_ByteString& key); +int32_t GetDirectInteger(CPDF_Dictionary* pDict, const ByteString& key); std::ostream& operator<<(std::ostream& buf, const CPDF_Object* pObj); |