Merge "Don't crash when presented with non-roundRect clipping outline." into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
2b81530bd2
@@ -61,8 +61,17 @@ void RenderNodeDrawable::drawBackwardsProjectedNodes(SkCanvas* canvas, const Ski
|
||||
static void clipOutline(const Outline& outline, SkCanvas* canvas, const SkRect* pendingClip) {
|
||||
Rect possibleRect;
|
||||
float radius;
|
||||
LOG_ALWAYS_FATAL_IF(!outline.getAsRoundRect(&possibleRect, &radius),
|
||||
"clipping outlines should be at most roundedRects");
|
||||
|
||||
/* To match the existing HWUI behavior we only supports rectangles or
|
||||
* rounded rectangles; passing in a more complicated outline fails silently.
|
||||
*/
|
||||
if (!outline.getAsRoundRect(&possibleRect, &radius)) {
|
||||
if (pendingClip) {
|
||||
canvas->clipRect(*pendingClip);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
SkRect rect = possibleRect.toSkRect();
|
||||
if (radius != 0.0f) {
|
||||
if (pendingClip && !pendingClip->contains(rect)) {
|
||||
|
||||
Reference in New Issue
Block a user