aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/core/SkPictureRecord.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/core/SkPictureRecord.cpp b/src/core/SkPictureRecord.cpp
index c7f2c6c041..b565fc11a8 100644
--- a/src/core/SkPictureRecord.cpp
+++ b/src/core/SkPictureRecord.cpp
@@ -45,7 +45,13 @@ int SkPictureRecord::saveLayer(const SkRect* bounds, const SkPaint* paint,
fRestoreOffsetStack.push(0);
validate();
- return this->INHERITED::saveLayer(bounds, paint, flags);
+ /* Don't actually call saveLayer, because that will try to allocate an
+ offscreen device (potentially very big) which we don't actually need
+ at this time (and may not be able to afford since during record our
+ clip starts out the size of the picture, which is often much larger
+ than the size of the actual device we'll use during playback).
+ */
+ return this->INHERITED::save(flags);
}
void SkPictureRecord::restore() {