Turn a failing assert into an actual check.
authorLei Zhang <thestig@chromium.org>
Thu, 3 Sep 2015 21:13:19 +0000 (14:13 -0700)
committerLei Zhang <thestig@chromium.org>
Thu, 3 Sep 2015 21:13:19 +0000 (14:13 -0700)
BUG=522131
R=tsepez@chromium.org

Review URL: https://codereview.chromium.org/1327913002 .

core/src/fpdfapi/fpdf_parser/fpdf_parser_document.cpp

index 02ff1f3..5b78013 100644 (file)
@@ -136,37 +136,42 @@ CPDF_Dictionary* CPDF_Document::_FindPDFPage(CPDF_Dictionary* pPages,
   }
   return NULL;
 }
+
 CPDF_Dictionary* CPDF_Document::GetPage(int iPage) {
-  if (iPage < 0 || iPage >= m_PageList.GetSize()) {
-    return NULL;
-  }
+  if (iPage < 0 || iPage >= m_PageList.GetSize())
+    return nullptr;
+
   if (m_bLinearized && (iPage == (int)m_dwFirstPageNo)) {
     CPDF_Object* pObj = GetIndirectObject(m_dwFirstPageObjNum);
     if (pObj && pObj->GetType() == PDFOBJ_DICTIONARY) {
-      return (CPDF_Dictionary*)pObj;
+      return static_cast<CPDF_Dictionary*>(pObj);
     }
   }
+
   int objnum = m_PageList.GetAt(iPage);
   if (objnum) {
     CPDF_Object* pObj = GetIndirectObject(objnum);
-    ASSERT(pObj->GetType() == PDFOBJ_DICTIONARY);
-    return (CPDF_Dictionary*)pObj;
+    if (pObj && pObj->GetType() == PDFOBJ_DICTIONARY) {
+      return static_cast<CPDF_Dictionary*>(pObj);
+    }
   }
+
   CPDF_Dictionary* pRoot = GetRoot();
-  if (pRoot == NULL) {
-    return NULL;
-  }
+  if (!pRoot)
+    return nullptr;
+
   CPDF_Dictionary* pPages = pRoot->GetDict(FX_BSTRC("Pages"));
-  if (pPages == NULL) {
-    return NULL;
-  }
+  if (!pPages)
+    return nullptr;
+
   CPDF_Dictionary* pPage = _FindPDFPage(pPages, iPage, iPage, 0);
-  if (pPage == NULL) {
-    return NULL;
-  }
+  if (!pPage)
+    return nullptr;
+
   m_PageList.SetAt(iPage, pPage->GetObjNum());
   return pPage;
 }
+
 int CPDF_Document::_FindPageIndex(CPDF_Dictionary* pNode,
                                   FX_DWORD& skip_count,
                                   FX_DWORD objnum,