From beb56d69a7a57317d521bab927a651fb260f5404 Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Wed, 18 Jul 2018 04:52:18 +0000 Subject: Avoid writing const/non-const versions of the same function. Use const_cast for the non-const version to call the const version. Change-Id: Ibdf5fe53255ee6e983555080336f5d63e683afd1 Reviewed-on: https://pdfium-review.googlesource.com/37490 Reviewed-by: Henrique Nakashima Commit-Queue: Lei Zhang --- core/fpdfdoc/cpdf_filespec.cpp | 36 +++++++----------------------------- 1 file changed, 7 insertions(+), 29 deletions(-) (limited to 'core/fpdfdoc/cpdf_filespec.cpp') diff --git a/core/fpdfdoc/cpdf_filespec.cpp b/core/fpdfdoc/cpdf_filespec.cpp index 95254b7bb8..2cc51e33d3 100644 --- a/core/fpdfdoc/cpdf_filespec.cpp +++ b/core/fpdfdoc/cpdf_filespec.cpp @@ -19,10 +19,6 @@ namespace { -// List of keys to check for the file specification string. -// Follows the same precedence order as GetFileName(). -constexpr const char* kKeys[] = {"UF", "F", "DOS", "Mac", "Unix"}; - #if _FX_PLATFORM_ == _FX_PLATFORM_APPLE_ || \ _FX_PLATFORM_ == _FX_PLATFORM_WINDOWS_ WideString ChangeSlashToPlatform(const wchar_t* str) { @@ -136,6 +132,9 @@ const CPDF_Stream* CPDF_FileSpec::GetFileStream() const { if (!pFiles) return nullptr; + // List of keys to check for the file specification string. + // Follows the same precedence order as GetFileName(). + constexpr const char* kKeys[] = {"UF", "F", "DOS", "Mac", "Unix"}; size_t end = pDict->GetStringFor("FS") == "URL" ? 2 : FX_ArraySize(kKeys); for (size_t i = 0; i < end; ++i) { ByteString key = kKeys[i]; @@ -149,25 +148,8 @@ const CPDF_Stream* CPDF_FileSpec::GetFileStream() const { } CPDF_Stream* CPDF_FileSpec::GetFileStream() { - CPDF_Dictionary* pDict = m_pWritableObj->AsDictionary(); - if (!pDict) - return nullptr; - - // Get the embedded files dictionary. - CPDF_Dictionary* pFiles = pDict->GetDictFor("EF"); - if (!pFiles) - return nullptr; - - size_t end = pDict->GetStringFor("FS") == "URL" ? 2 : FX_ArraySize(kKeys); - for (size_t i = 0; i < end; ++i) { - ByteString key = kKeys[i]; - if (!pDict->GetUnicodeTextFor(key).IsEmpty()) { - CPDF_Stream* pStream = pFiles->GetStreamFor(key); - if (pStream) - return pStream; - } - } - return nullptr; + return const_cast( + static_cast(this)->GetFileStream()); } const CPDF_Dictionary* CPDF_FileSpec::GetParamsDict() const { @@ -180,12 +162,8 @@ const CPDF_Dictionary* CPDF_FileSpec::GetParamsDict() const { } CPDF_Dictionary* CPDF_FileSpec::GetParamsDict() { - CPDF_Stream* pStream = GetFileStream(); - if (!pStream) - return nullptr; - - CPDF_Dictionary* pDict = pStream->GetDict(); - return pDict ? pDict->GetDictFor("Params") : nullptr; + return const_cast( + static_cast(this)->GetParamsDict()); } WideString CPDF_FileSpec::EncodeFileName(const WideString& filepath) { -- cgit v1.2.3