aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-07-09 20:53:37 +0000
committerGravatar junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-07-09 20:53:37 +0000
commit9fa4d0cca9b27d4ffb510096b37a69d78f88dfc6 (patch)
tree2d4ec4d83b976971211ccb3ffdf7704b3cc056ce /src
parentbcf0c5229c047e8c8ba993faf0ca14c30a3d4c51 (diff)
Adding sanity checks on restore offsets in SkPicturePlayback::draw
Diffstat (limited to 'src')
-rw-r--r--src/core/SkPicturePlayback.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/SkPicturePlayback.cpp b/src/core/SkPicturePlayback.cpp
index d3c77af2d1..98bfb16af5 100644
--- a/src/core/SkPicturePlayback.cpp
+++ b/src/core/SkPicturePlayback.cpp
@@ -546,6 +546,8 @@ void SkPicturePlayback::draw(SkCanvas& canvas) {
SkRegion::Op op = ClipParams_unpackRegionOp(packed);
bool doAA = ClipParams_unpackDoAA(packed);
size_t offsetToRestore = getInt();
+ SkASSERT(!offsetToRestore || \
+ offsetToRestore > fReader.offset());
if (!canvas.clipPath(path, op, doAA) && offsetToRestore) {
#ifdef SPEW_CLIP_SKIPPING
skipPath.recordSkip(offsetToRestore - fReader.offset());
@@ -558,6 +560,8 @@ void SkPicturePlayback::draw(SkCanvas& canvas) {
uint32_t packed = getInt();
SkRegion::Op op = ClipParams_unpackRegionOp(packed);
size_t offsetToRestore = getInt();
+ SkASSERT(!offsetToRestore || \
+ offsetToRestore > fReader.offset());
if (!canvas.clipRegion(region, op) && offsetToRestore) {
#ifdef SPEW_CLIP_SKIPPING
skipRegion.recordSkip(offsetToRestore - fReader.offset());
@@ -571,6 +575,8 @@ void SkPicturePlayback::draw(SkCanvas& canvas) {
SkRegion::Op op = ClipParams_unpackRegionOp(packed);
bool doAA = ClipParams_unpackDoAA(packed);
size_t offsetToRestore = getInt();
+ SkASSERT(!offsetToRestore || \
+ offsetToRestore > fReader.offset());
if (!canvas.clipRect(rect, op, doAA) && offsetToRestore) {
#ifdef SPEW_CLIP_SKIPPING
skipRect.recordSkip(offsetToRestore - fReader.offset());