Index: core/src/fpdfapi/fpdf_parser/fpdf_parser_fdf.cpp |
diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_fdf.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_fdf.cpp |
index 19359ad7cf2025d1ac7c02ab661d8183f411dc90..82bfbb56ebb8017be889fed8600409f4ed7d08ec 100644 |
--- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_fdf.cpp |
+++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_fdf.cpp |
@@ -70,13 +70,11 @@ void CFDF_Document::ParseStream(IFX_FileRead* pFile, FX_BOOL bOwnFile) { |
if (word != FX_BSTRC("trailer")) { |
break; |
} |
- CPDF_Dictionary* pMainDict = |
- (CPDF_Dictionary*)parser.GetObject(this, 0, 0, 0); |
- if (pMainDict == NULL || pMainDict->GetType() != PDFOBJ_DICTIONARY) { |
- break; |
+ if (CPDF_Dictionary* pMainDict = |
+ ToDictionary(parser.GetObject(this, 0, 0, 0))) { |
+ m_pRootDict = pMainDict->GetDict(FX_BSTRC("Root")); |
+ pMainDict->Release(); |
} |
- m_pRootDict = pMainDict->GetDict(FX_BSTRC("Root")); |
- pMainDict->Release(); |
break; |
} |
} |
@@ -142,18 +140,17 @@ void FPDF_FileSpec_SetWin32Path(CPDF_Object* pFileSpec, |
} |
if (pFileSpec->GetType() == PDFOBJ_STRING) { |
pFileSpec->SetString(CFX_ByteString::FromUnicode(result)); |
- } else if (pFileSpec->GetType() == PDFOBJ_DICTIONARY) { |
- ((CPDF_Dictionary*)pFileSpec) |
- ->SetAtString(FX_BSTRC("F"), CFX_ByteString::FromUnicode(result)); |
- ((CPDF_Dictionary*)pFileSpec) |
- ->SetAtString(FX_BSTRC("UF"), PDF_EncodeText(result)); |
- ((CPDF_Dictionary*)pFileSpec)->RemoveAt(FX_BSTRC("FS")); |
+ } else if (CPDF_Dictionary* pFileDict = pFileSpec->AsDictionary()) { |
+ pFileDict->SetAtString(FX_BSTRC("F"), CFX_ByteString::FromUnicode(result)); |
+ pFileDict->SetAtString(FX_BSTRC("UF"), PDF_EncodeText(result)); |
+ pFileDict->RemoveAt(FX_BSTRC("FS")); |
} |
} |
CFX_WideString FPDF_FileSpec_GetWin32Path(const CPDF_Object* pFileSpec) { |
CFX_WideString wsFileName; |
- if (pFileSpec->GetType() == PDFOBJ_DICTIONARY) { |
- CPDF_Dictionary* pDict = (CPDF_Dictionary*)pFileSpec; |
+ if (!pFileSpec) { |
+ wsFileName = CFX_WideString(); |
+ } else if (const CPDF_Dictionary* pDict = pFileSpec->AsDictionary()) { |
wsFileName = pDict->GetUnicodeText(FX_BSTRC("UF")); |
if (wsFileName.IsEmpty()) { |
wsFileName = CFX_WideString::FromLocal(pDict->GetString(FX_BSTRC("F"))); |
@@ -164,9 +161,7 @@ CFX_WideString FPDF_FileSpec_GetWin32Path(const CPDF_Object* pFileSpec) { |
if (wsFileName.IsEmpty() && pDict->KeyExist(FX_BSTRC("DOS"))) { |
wsFileName = CFX_WideString::FromLocal(pDict->GetString(FX_BSTRC("DOS"))); |
} |
- } else if (!pFileSpec) |
- wsFileName = CFX_WideString(); |
- else { |
+ } else { |
wsFileName = CFX_WideString::FromLocal(pFileSpec->GetString()); |
} |
if (wsFileName[0] != '/') { |