Enabling validation code in serialization and adding serialization to fuzzer

BUG=
R=reed@google.com, mtklein@google.com, senorblanco@chromium.org, bsalomon@google.com

Author: sugoi@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk/src@11968 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/core/SkFlattenableSerialization.cpp b/core/SkFlattenableSerialization.cpp
index c687074..b98d935 100644
--- a/core/SkFlattenableSerialization.cpp
+++ b/core/SkFlattenableSerialization.cpp
@@ -8,14 +8,12 @@
 #include "SkFlattenableSerialization.h"
 
 #include "SkData.h"
-#include "SkFlattenable.h"
-#include "SkImageFilter.h"
-#include "SkOrderedReadBuffer.h"
+#include "SkValidatingReadBuffer.h"
 #include "SkOrderedWriteBuffer.h"
 
-SkData* SkSerializeFlattenable(SkFlattenable* flattenable) {
+SkData* SkValidatingSerializeFlattenable(SkFlattenable* flattenable) {
     SkOrderedWriteBuffer writer(1024);
-    writer.setFlags(SkOrderedWriteBuffer::kCrossProcess_Flag);
+    writer.setFlags(SkOrderedWriteBuffer::kValidation_Flag);
     writer.writeFlattenable(flattenable);
     uint32_t size = writer.bytesWritten();
     void* data = sk_malloc_throw(size);
@@ -23,8 +21,8 @@
     return SkData::NewFromMalloc(data, size);
 }
 
-// TODO: this guy should be renamed to ImageFilter, or take SkFlattenable::Type as a parameter.
-SkFlattenable* SkDeserializeFlattenable(const void* data, size_t size) {
-    SkOrderedReadBuffer buffer(data, size);
-    return buffer.readImageFilter();
+SkFlattenable* SkValidatingDeserializeFlattenable(const void* data, size_t size,
+                                                  SkFlattenable::Type type) {
+    SkValidatingReadBuffer buffer(data, size);
+    return buffer.readFlattenable(type);
 }