Fixed issue with invalid stretch params
Refactored error checking logic to ignore all invalid parameters for vecX/vecY regardless if NaN parameters were computed through intermediate math operations or provided as inputs Fixes: 183781985 Test: Added CTS test Change-Id: Ib9f3dd1becc0486dc15ce306660bd5d469b81256
This commit is contained in:
@@ -626,20 +626,14 @@ public class EdgeEffect {
|
||||
// assume rotations of increments of 90 degrees
|
||||
float x = mTmpPoints[10] - mTmpPoints[8];
|
||||
float width = right - left;
|
||||
float vecX = 0f;
|
||||
if (width > 0) {
|
||||
vecX = dampStretchVector(Math.max(-1f, Math.min(1f, x / width)));
|
||||
}
|
||||
float vecX = dampStretchVector(Math.max(-1f, Math.min(1f, x / width)));
|
||||
|
||||
float y = mTmpPoints[11] - mTmpPoints[9];
|
||||
float height = bottom - top;
|
||||
float vecY = 0f;
|
||||
if (height > 0) {
|
||||
vecY = dampStretchVector(Math.max(-1f, Math.min(1f, y / height)));
|
||||
}
|
||||
float vecY = dampStretchVector(Math.max(-1f, Math.min(1f, y / height)));
|
||||
|
||||
boolean hasStretchVectors = Float.compare(vecX, 0) != 0 || Float.compare(vecY, 0) != 0;
|
||||
if (right > left && bottom > top && mWidth > 0 && mHeight > 0 && hasStretchVectors) {
|
||||
boolean hasValidVectors = Float.isFinite(vecX) && Float.isFinite(vecY);
|
||||
if (right > left && bottom > top && mWidth > 0 && mHeight > 0 && hasValidVectors) {
|
||||
renderNode.stretch(
|
||||
left,
|
||||
top,
|
||||
|
||||
Reference in New Issue
Block a user