diff options
Diffstat (limited to 'src/core/SkRegion.cpp')
-rw-r--r-- | src/core/SkRegion.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/SkRegion.cpp b/src/core/SkRegion.cpp index dcad9eaab6..936c87e832 100644 --- a/src/core/SkRegion.cpp +++ b/src/core/SkRegion.cpp @@ -1019,6 +1019,12 @@ bool SkRegion::Oper(const SkRegion& rgnaOrig, const SkRegion& rgnbOrig, Op op, if (a_rect & b_rect) { return setRectCheck(result, bounds); } + if (a_rect && rgna->fBounds.contains(rgnb->fBounds)) { + return setRegionCheck(result, *rgnb); + } + if (b_rect && rgnb->fBounds.contains(rgna->fBounds)) { + return setRegionCheck(result, *rgna); + } break; case kUnion_Op: |