[PDF] Only output the Dests dictionary if it isn't epmpty

R=edisonn@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9100 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/pdf/SkPDFDocument.cpp b/src/pdf/SkPDFDocument.cpp
index 062263d..0633d30 100644
--- a/src/pdf/SkPDFDocument.cpp
+++ b/src/pdf/SkPDFDocument.cpp
@@ -112,9 +112,7 @@
         fDocCatalog->insert("OutputIntent", intentArray.get());
         */
 
-        SkPDFDict* dests = SkNEW(SkPDFDict);  // fPageResources owns reference
-        fCatalog->addObject(dests, true /* onFirstPage */);
-        fFirstPageResources->add(dests);
+        SkAutoTUnref<SkPDFDict> dests(SkNEW(SkPDFDict));
 
         bool firstPage = true;
         /* The references returned in newResources are transfered to
@@ -151,7 +149,12 @@
             fPages[i]->appendDestinations(dests);
         }
 
-        fDocCatalog->insert("Dests", SkNEW_ARGS(SkPDFObjRef, (dests)))->unref();
+        if (dests->size() > 0) {
+            SkPDFDict* raw_dests = dests.get();
+            fFirstPageResources->add(dests.detach());  // Transfer ownership.
+            fCatalog->addObject(raw_dests, true /* onFirstPage */);
+            fDocCatalog->insert("Dests", SkNEW_ARGS(SkPDFObjRef, (raw_dests)))->unref();
+        }
 
         // Build font subsetting info before proceeding.
         perform_font_subsetting(fCatalog.get(), fPages, &fSubstitutes);