Index: src/core/SkPicture.cpp |
diff --git a/src/core/SkPicture.cpp b/src/core/SkPicture.cpp |
index f83a5fb9aadc33ff1aacdefa42b3244bbbaec4a7..cd67e88162f4cfce8ed81ce9cdb3731d8cbe969a 100644 |
--- a/src/core/SkPicture.cpp |
+++ b/src/core/SkPicture.cpp |
@@ -291,24 +291,21 @@ bool SkPicture::InternalOnly_StreamIsSKP(SkStream* stream, SkPictInfo* pInfo) { |
bool SkPicture::InternalOnly_BufferIsSKP(SkReadBuffer& buffer, SkPictInfo* pInfo) { |
// Check magic bytes. |
- char magic[sizeof(kMagic)]; |
+ char header[kHeaderSize]; |
- if (!buffer.readByteArray(magic, sizeof(kMagic)) || |
- (0 != memcmp(magic, kMagic, sizeof(kMagic)))) { |
+ if (!buffer.readByteArray(header, kHeaderSize) || |
+ (0 != memcmp(header, kMagic, sizeof(kMagic)))) { |
return false; |
} |
- SkPictInfo info; |
- if (!buffer.readByteArray(&info, sizeof(SkPictInfo))) { |
- return false; |
- } |
+ SkPictInfo* info = reinterpret_cast<SkPictInfo*>(header + sizeof(kMagic)); |
- if (info.fVersion < MIN_PICTURE_VERSION || info.fVersion > CURRENT_PICTURE_VERSION) { |
+ if (info->fVersion < MIN_PICTURE_VERSION || info->fVersion > CURRENT_PICTURE_VERSION) { |
return false; |
} |
if (pInfo != NULL) { |
- *pInfo = info; |
+ *pInfo = *info; |
} |
return true; |
} |