Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(346)

Unified Diff: src/core/SkPicture.cpp

Issue 195223003: Fixing SkPicture serialization (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
}

Powered by Google App Engine
This is Rietveld 408576698