Index: core/src/fpdfdoc/doc_annot.cpp |
diff --git a/core/src/fpdfdoc/doc_annot.cpp b/core/src/fpdfdoc/doc_annot.cpp |
index ca05d783b8fd5c70b3955a36d89abd9255b42cc3..dc5ccb811c036e5f3d9bddc149aa44dfe7f7c3ed 100644 |
--- a/core/src/fpdfdoc/doc_annot.cpp |
+++ b/core/src/fpdfdoc/doc_annot.cpp |
@@ -190,22 +190,20 @@ CPDF_Stream* FPDFDOC_GetAnnotAP(CPDF_Dictionary* pAnnotDict, |
return NULL; |
} |
const FX_CHAR* ap_entry = "N"; |
- if (mode == CPDF_Annot::Down) { |
+ if (mode == CPDF_Annot::Down) |
ap_entry = "D"; |
- } else if (mode == CPDF_Annot::Rollover) { |
+ else if (mode == CPDF_Annot::Rollover) |
ap_entry = "R"; |
- } |
- if (!pAP->KeyExist(ap_entry)) { |
+ if (!pAP->KeyExist(ap_entry)) |
ap_entry = "N"; |
- } |
+ |
CPDF_Object* psub = pAP->GetElementValue(ap_entry); |
- if (psub == NULL) { |
- return NULL; |
- } |
- CPDF_Stream* pStream = NULL; |
- if (psub->GetType() == PDFOBJ_STREAM) { |
- pStream = (CPDF_Stream*)psub; |
- } else if (CPDF_Dictionary* pDict = psub->AsDictionary()) { |
+ if (!psub) |
+ return nullptr; |
+ if (CPDF_Stream* pStream = psub->AsStream()) |
+ return pStream; |
+ |
+ if (CPDF_Dictionary* pDict = psub->AsDictionary()) { |
CFX_ByteString as = pAnnotDict->GetString("AS"); |
if (as.IsEmpty()) { |
CFX_ByteString value = pAnnotDict->GetString(FX_BSTRC("V")); |
@@ -213,15 +211,14 @@ CPDF_Stream* FPDFDOC_GetAnnotAP(CPDF_Dictionary* pAnnotDict, |
CPDF_Dictionary* pDict = pAnnotDict->GetDict(FX_BSTRC("Parent")); |
value = pDict ? pDict->GetString(FX_BSTRC("V")) : CFX_ByteString(); |
} |
- if (value.IsEmpty() || !pDict->KeyExist(value)) { |
+ if (value.IsEmpty() || !pDict->KeyExist(value)) |
as = FX_BSTRC("Off"); |
- } else { |
+ else |
as = value; |
- } |
} |
- pStream = pDict->GetStream(as); |
+ return pDict->GetStream(as); |
} |
- return pStream; |
+ return nullptr; |
} |
CPDF_Form* CPDF_Annot::GetAPForm(const CPDF_Page* pPage, AppearanceMode mode) { |
CPDF_Stream* pStream = FPDFDOC_GetAnnotAP(m_pAnnotDict, mode); |