pdfviewer: readobject can return null, and catalog can be null

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12276 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/experimental/PdfViewer/pdfparser/native/SkPdfNativeDoc.cpp b/experimental/PdfViewer/pdfparser/native/SkPdfNativeDoc.cpp
index 19f15d1..1d8f510 100644
--- a/experimental/PdfViewer/pdfparser/native/SkPdfNativeDoc.cpp
+++ b/experimental/PdfViewer/pdfparser/native/SkPdfNativeDoc.cpp
@@ -140,7 +140,7 @@
 
     if (fRootCatalogRef) {
         fRootCatalog = (SkPdfCatalogDictionary*)resolveReference(fRootCatalogRef);
-        if (fRootCatalog->isDictionary() && fRootCatalog->valid()) {
+        if (fRootCatalog != NULL && fRootCatalog->isDictionary() && fRootCatalog->valid()) {
             SkPdfPageTreeNodeDictionary* tree = fRootCatalog->Pages(this);
             if (tree && tree->isDictionary() && tree->valid()) {
                 fillPages(tree);
@@ -222,7 +222,7 @@
 
     if (fRootCatalogRef) {
         fRootCatalog = (SkPdfCatalogDictionary*)resolveReference(fRootCatalogRef);
-        if (fRootCatalog->isDictionary() && fRootCatalog->valid()) {
+        if (fRootCatalog != NULL && fRootCatalog->isDictionary() && fRootCatalog->valid()) {
             SkPdfPageTreeNodeDictionary* tree = fRootCatalog->Pages(this);
             if (tree && tree->isDictionary() && tree->valid()) {
                 fillPages(tree);
@@ -583,7 +583,7 @@
             fObjects[id].fObj = readObject(id);
         }
 
-        if (fObjects[id].fResolvedReference == NULL) {
+        if (fObjects[id].fObj != NULL && fObjects[id].fResolvedReference == NULL) {
             if (!fObjects[id].fObj->isReference()) {
                 fObjects[id].fResolvedReference = fObjects[id].fObj;
             } else {