diff options
author | robertphillips <robertphillips@google.com> | 2016-04-22 11:40:42 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-04-22 11:40:42 -0700 |
commit | 99e20891a080f39113bd7a5dc202730f2a13fa07 (patch) | |
tree | eae76639aa318242684f77e548ad164e9efad006 /src/core/SkPicture.cpp | |
parent | 1c2a2fe3c81af0d5b35224dc06cbd1a82a474ec7 (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.cpp | 10 |
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 { |