aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkPicture.cpp
diff options
context:
space:
mode:
authorGravatar robertphillips <robertphillips@google.com>2016-04-22 11:40:42 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-04-22 11:40:42 -0700
commit99e20891a080f39113bd7a5dc202730f2a13fa07 (patch)
treeeae76639aa318242684f77e548ad164e9efad006 /src/core/SkPicture.cpp
parent1c2a2fe3c81af0d5b35224dc06cbd1a82a474ec7 (diff)
Optionally enable SkValidatingReadBuffer in SkPictureImageFilter
The task here is to get the type of ReadBuffer being used in SkPicture::MakeFromBuffer mirrored in the down-stack SkPicturePlayback::draw call. BUG=skia:5208 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1918433002 Review URL: https://codereview.chromium.org/1918433002
Diffstat (limited to 'src/core/SkPicture.cpp')
-rw-r--r--src/core/SkPicture.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/core/SkPicture.cpp b/src/core/SkPicture.cpp
index c7e5e524b0..dfedd141db 100644
--- a/src/core/SkPicture.cpp
+++ b/src/core/SkPicture.cpp
@@ -129,13 +129,15 @@ bool SkPicture::InternalOnly_BufferIsSKP(SkReadBuffer* buffer, SkPictInfo* pInfo
return false;
}
-sk_sp<SkPicture> SkPicture::Forwardport(const SkPictInfo& info, const SkPictureData* data) {
+sk_sp<SkPicture> SkPicture::Forwardport(const SkPictInfo& info,
+ const SkPictureData* data,
+ const SkReadBuffer* buffer) {
if (!data) {
return nullptr;
}
SkPicturePlayback playback(data);
SkPictureRecorder r;
- playback.draw(r.beginRecording(info.fCullRect), nullptr/*no callback*/);
+ playback.draw(r.beginRecording(info.fCullRect), nullptr/*no callback*/, buffer);
return r.finishRecordingAsPicture();
}
@@ -161,7 +163,7 @@ sk_sp<SkPicture> SkPicture::MakeFromStream(SkStream* stream, InstallPixelRefProc
}
SkAutoTDelete<SkPictureData> data(
SkPictureData::CreateFromStream(stream, info, proc, typefaces));
- return Forwardport(info, data);
+ return Forwardport(info, data, nullptr);
}
sk_sp<SkPicture> SkPicture::MakeFromBuffer(SkReadBuffer& buffer) {
@@ -170,7 +172,7 @@ sk_sp<SkPicture> SkPicture::MakeFromBuffer(SkReadBuffer& buffer) {
return nullptr;
}
SkAutoTDelete<SkPictureData> data(SkPictureData::CreateFromBuffer(buffer, info));
- return Forwardport(info, data);
+ return Forwardport(info, data, &buffer);
}
SkPictureData* SkPicture::backport() const {