pdfviewer: add indexed rbg image support, enhanche caching(setData) for SkPdfObject

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10534 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/experimental/PdfViewer/pdfparser/native/SkPdfObject.cpp b/experimental/PdfViewer/pdfparser/native/SkPdfObject.cpp
index eb342af..a02d789 100644
--- a/experimental/PdfViewer/pdfparser/native/SkPdfObject.cpp
+++ b/experimental/PdfViewer/pdfparser/native/SkPdfObject.cpp
@@ -6,6 +6,9 @@
 #include "SkStream.h"
 #include "SkPdfNativeTokenizer.h"
 
+#include "SkBitmap.h"
+#include "SkPdfFont.h"
+
 SkPdfObject SkPdfObject::kNull = SkPdfObject::makeNull();
 
 bool SkPdfObject::applyFlateDecodeFilter() {
@@ -86,3 +89,21 @@
 
     return true;
 }
+
+void SkPdfObject::releaseData() {
+    if (fData) {
+        switch (fDataType) {
+            case kFont_Data:
+                delete (SkPdfFont*)fData;
+                break;
+            case kBitmap_Data:
+                delete (SkBitmap*)fData;
+                break;
+            default:
+                SkASSERT(false);
+                break;
+        }
+    }
+    fData = NULL;
+    fDataType = kEmpty_Data;
+}