pdfviewer: fix condition for element in array, reset back the default color to white, and verify type before value in PDF API mapper
Review URL: https://codereview.chromium.org/21017004
git-svn-id: http://skia.googlecode.com/svn/trunk@10427 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/experimental/PdfViewer/generate_code.py b/experimental/PdfViewer/generate_code.py
index 75d3022..23a8360 100644
--- a/experimental/PdfViewer/generate_code.py
+++ b/experimental/PdfViewer/generate_code.py
@@ -518,7 +518,7 @@
cntMust = cntMust + 1
fileMapperNativeCpp.write(' if (!nativeObj->isDictionary()) return false;\n')
fileMapperNativeCpp.write(' ret = nativeObj->get(\"' + prop.fName + '\", \"' + prop.fAbr + '\");\n')
- fileMapperNativeCpp.write(' if (ret == NULL) return false;\n')
+ fileMapperNativeCpp.write(' if (ret == NULL || !' + knowTypes[prop.fTypes.strip()][3] + ') return false;\n')
eval = '';
# TODO(edisonn): this could get out of hand, and could have poor performance if continued on this path
diff --git a/experimental/PdfViewer/pdf_viewer_main.cpp b/experimental/PdfViewer/pdf_viewer_main.cpp
index f3176b9..194fcdd 100644
--- a/experimental/PdfViewer/pdf_viewer_main.cpp
+++ b/experimental/PdfViewer/pdf_viewer_main.cpp
@@ -139,7 +139,7 @@
PNG_FILE_EXTENSION);
}
-static void setup_bitmap(SkBitmap* bitmap, int width, int height, SkColor color = SK_ColorTRANSPARENT) {
+static void setup_bitmap(SkBitmap* bitmap, int width, int height, SkColor color = SK_ColorWHITE) {
bitmap->setConfig(SkBitmap::kARGB_8888_Config, width, height);
bitmap->allocPixels();
diff --git a/experimental/PdfViewer/pdfparser/native/SkNativeParsedPDF.cpp b/experimental/PdfViewer/pdfparser/native/SkNativeParsedPDF.cpp
index e54ba82..9e89b84 100644
--- a/experimental/PdfViewer/pdfparser/native/SkNativeParsedPDF.cpp
+++ b/experimental/PdfViewer/pdfparser/native/SkNativeParsedPDF.cpp
@@ -504,12 +504,12 @@
SkASSERT(!(id < 0 || id > fObjects.count()));
- if (id < 0 || id > fObjects.count()) {
+ // TODO(edisonn): verify id and gen expected
+ if (id < 0 || id >= fObjects.count()) {
+ // TODO(edisonn): report error/warning
return NULL;
}
- // TODO(edisonn): verify id and gen expected
-
if (fObjects[id].fResolvedReference != NULL) {
return fObjects[id].fResolvedReference;
}