| Index: src/core/SkRecordDraw.cpp
|
| diff --git a/src/core/SkRecordDraw.cpp b/src/core/SkRecordDraw.cpp
|
| index 4ca398574e76185dadfeca61a9e2463bfbf68307..c9e029b8db67f11a59c9844a3128f5042931dedf 100644
|
| --- a/src/core/SkRecordDraw.cpp
|
| +++ b/src/core/SkRecordDraw.cpp
|
| @@ -189,29 +189,19 @@ private:
|
| this->pushControl();
|
| }
|
|
|
| - static bool PaintMayAffectTransparentBlack(const SkPaint* paint) {
|
| - // FIXME: this is very conservative
|
| - return paint && (paint->getImageFilter() || paint->getColorFilter());
|
| - }
|
| -
|
| SkIRect popSaveBlock() {
|
| // We're done the Save block. Apply the block's bounds to all control ops inside it.
|
| SaveBounds sb;
|
| fSaveStack.pop(&sb);
|
| -
|
| - // If the paint affects transparent black, we can't trust any of our calculated bounds.
|
| - const SkIRect& bounds =
|
| - PaintMayAffectTransparentBlack(sb.paint) ? fCurrentClipBounds : sb.bounds;
|
| -
|
| while (sb.controlOps --> 0) {
|
| - this->popControl(bounds);
|
| + this->popControl(sb.bounds);
|
| }
|
|
|
| // This whole Save block may be part another Save block.
|
| - this->updateSaveBounds(bounds);
|
| + this->updateSaveBounds(sb.bounds);
|
|
|
| // If called from a real Restore (not a phony one for balance), it'll need the bounds.
|
| - return bounds;
|
| + return sb.bounds;
|
| }
|
|
|
| void pushControl() {
|
|
|