| Index: core/src/fpdfdoc/doc_annot.cpp
|
| diff --git a/core/src/fpdfdoc/doc_annot.cpp b/core/src/fpdfdoc/doc_annot.cpp
|
| index 6f5ff797f22d1075a6ac9a3d5094c4aa3a67ac4c..4d0b703036234995ccb95d56a763f985d58487d6 100644
|
| --- a/core/src/fpdfdoc/doc_annot.cpp
|
| +++ b/core/src/fpdfdoc/doc_annot.cpp
|
| @@ -23,8 +23,8 @@ CPDF_AnnotList::CPDF_AnnotList(CPDF_Page* pPage) {
|
| CPDF_Dictionary* pAcroForm = pRoot->GetDict("AcroForm");
|
| FX_BOOL bRegenerateAP = pAcroForm && pAcroForm->GetBoolean("NeedAppearances");
|
| for (FX_DWORD i = 0; i < pAnnots->GetCount(); ++i) {
|
| - CPDF_Dictionary* pDict = (CPDF_Dictionary*)pAnnots->GetElementValue(i);
|
| - if (pDict == NULL || pDict->GetType() != PDFOBJ_DICTIONARY) {
|
| + CPDF_Dictionary* pDict = ToDictionary(pAnnots->GetElementValue(i));
|
| + if (!pDict) {
|
| continue;
|
| }
|
| FX_DWORD dwObjNum = pDict->GetObjNum();
|
| @@ -202,7 +202,7 @@ CPDF_Stream* FPDFDOC_GetAnnotAP(CPDF_Dictionary* pAnnotDict,
|
| CPDF_Stream* pStream = NULL;
|
| if (psub->GetType() == PDFOBJ_STREAM) {
|
| pStream = (CPDF_Stream*)psub;
|
| - } else if (psub->GetType() == PDFOBJ_DICTIONARY) {
|
| + } else if (CPDF_Dictionary* pDict = psub->AsDictionary()) {
|
| CFX_ByteString as = pAnnotDict->GetString("AS");
|
| if (as.IsEmpty()) {
|
| CFX_ByteString value = pAnnotDict->GetString(FX_BSTRC("V"));
|
| @@ -210,13 +210,13 @@ 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() || !((CPDF_Dictionary*)psub)->KeyExist(value)) {
|
| + if (value.IsEmpty() || !pDict->KeyExist(value)) {
|
| as = FX_BSTRC("Off");
|
| } else {
|
| as = value;
|
| }
|
| }
|
| - pStream = ((CPDF_Dictionary*)psub)->GetStream(as);
|
| + pStream = pDict->GetStream(as);
|
| }
|
| return pStream;
|
| }
|
|
|