| Index: core/src/fpdfdoc/doc_tagged.cpp
 | 
| diff --git a/core/src/fpdfdoc/doc_tagged.cpp b/core/src/fpdfdoc/doc_tagged.cpp
 | 
| index facad468867701d33a26b3f66a63d82e633f2155..fb3a05d59fbb1545845af5bcdae8d9f0aeb2be9f 100644
 | 
| --- a/core/src/fpdfdoc/doc_tagged.cpp
 | 
| +++ b/core/src/fpdfdoc/doc_tagged.cpp
 | 
| @@ -54,9 +54,9 @@ void CPDF_StructTreeImpl::LoadDocTree() {
 | 
|    if (pKids == NULL) {
 | 
|      return;
 | 
|    }
 | 
| -  if (pKids->GetType() == PDFOBJ_DICTIONARY) {
 | 
| +  if (CPDF_Dictionary* pDict = pKids->AsDictionary()) {
 | 
|      CPDF_StructElementImpl* pStructElementImpl =
 | 
| -        new CPDF_StructElementImpl(this, NULL, (CPDF_Dictionary*)pKids);
 | 
| +        new CPDF_StructElementImpl(this, NULL, pDict);
 | 
|      m_Kids.Add(pStructElementImpl);
 | 
|      return;
 | 
|    }
 | 
| @@ -81,7 +81,7 @@ void CPDF_StructTreeImpl::LoadPageTree(const CPDF_Dictionary* pPageDict) {
 | 
|      return;
 | 
|    }
 | 
|    FX_DWORD dwKids = 0;
 | 
| -  if (pKids->GetType() == PDFOBJ_DICTIONARY) {
 | 
| +  if (pKids->IsDictionary()) {
 | 
|      dwKids = 1;
 | 
|    } else if (pKids->GetType() == PDFOBJ_ARRAY) {
 | 
|      dwKids = ((CPDF_Array*)pKids)->GetCount();
 | 
| @@ -161,7 +161,7 @@ FX_BOOL CPDF_StructTreeImpl::AddTopLevelNode(CPDF_Dictionary* pDict,
 | 
|    if (!pObj) {
 | 
|      return FALSE;
 | 
|    }
 | 
| -  if (pObj->GetType() == PDFOBJ_DICTIONARY) {
 | 
| +  if (pObj->IsDictionary()) {
 | 
|      if (pObj->GetObjNum() == pDict->GetObjNum()) {
 | 
|        if (m_Kids[0]) {
 | 
|          m_Kids[0]->Release();
 | 
| @@ -266,10 +266,10 @@ void CPDF_StructElementImpl::LoadKid(FX_DWORD PageObjNum,
 | 
|      pKid->m_PageContent.m_PageObjNum = PageObjNum;
 | 
|      return;
 | 
|    }
 | 
| -  if (pKidObj->GetType() != PDFOBJ_DICTIONARY) {
 | 
| +  CPDF_Dictionary* pKidDict = pKidObj->AsDictionary();
 | 
| +  if (!pKidDict)
 | 
|      return;
 | 
| -  }
 | 
| -  CPDF_Dictionary* pKidDict = (CPDF_Dictionary*)pKidObj;
 | 
| +
 | 
|    CPDF_Object* pPageObj = pKidDict->GetElement(FX_BSTRC("Pg"));
 | 
|    if (pPageObj && pPageObj->GetType() == PDFOBJ_REFERENCE) {
 | 
|      PageObjNum = ((CPDF_Reference*)pPageObj)->GetRefObjNum();
 | 
| @@ -322,8 +322,8 @@ static CPDF_Dictionary* FindAttrDict(CPDF_Object* pAttrs,
 | 
|      return NULL;
 | 
|    }
 | 
|    CPDF_Dictionary* pDict = NULL;
 | 
| -  if (pAttrs->GetType() == PDFOBJ_DICTIONARY) {
 | 
| -    pDict = (CPDF_Dictionary*)pAttrs;
 | 
| +  if (pAttrs->IsDictionary()) {
 | 
| +    pDict = pAttrs->AsDictionary();
 | 
|    } else if (pAttrs->GetType() == PDFOBJ_STREAM) {
 | 
|      pDict = ((CPDF_Stream*)pAttrs)->GetDict();
 | 
|    } else if (pAttrs->GetType() == PDFOBJ_ARRAY) {
 | 
| 
 |