From 9622adf6e8028aebd57213371c4f2c6c26fc63e5 Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Tue, 3 Sep 2013 16:08:00 -0700 Subject: [PATCH] Prevent NPE when cloning gradients Bug #10436856 Change-Id: I98cbce941a06842112b8caa3753a3fa32b227da9 --- graphics/java/android/graphics/LinearGradient.java | 4 ++-- graphics/java/android/graphics/RadialGradient.java | 4 ++-- graphics/java/android/graphics/SweepGradient.java | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/graphics/java/android/graphics/LinearGradient.java b/graphics/java/android/graphics/LinearGradient.java index 54cdcab1e8962..4c88de35b0e9c 100644 --- a/graphics/java/android/graphics/LinearGradient.java +++ b/graphics/java/android/graphics/LinearGradient.java @@ -102,8 +102,8 @@ public class LinearGradient extends Shader { final LinearGradient copy; switch (mType) { case TYPE_COLORS_AND_POSITIONS: - copy = new LinearGradient(mX0, mY0, mX1, mY1, mColors.clone(), mPositions.clone(), - mTileMode); + copy = new LinearGradient(mX0, mY0, mX1, mY1, mColors.clone(), + mPositions != null ? mPositions.clone() : null, mTileMode); break; case TYPE_COLOR_START_AND_COLOR_END: copy = new LinearGradient(mX0, mY0, mX1, mY1, mColor0, mColor1, mTileMode); diff --git a/graphics/java/android/graphics/RadialGradient.java b/graphics/java/android/graphics/RadialGradient.java index 23244d8d917db..f011e5c9c85e6 100644 --- a/graphics/java/android/graphics/RadialGradient.java +++ b/graphics/java/android/graphics/RadialGradient.java @@ -103,8 +103,8 @@ public class RadialGradient extends Shader { final RadialGradient copy; switch (mType) { case TYPE_COLORS_AND_POSITIONS: - copy = new RadialGradient(mX, mY, mRadius, mColors.clone(), mPositions.clone(), - mTileMode); + copy = new RadialGradient(mX, mY, mRadius, mColors.clone(), + mPositions != null ? mPositions.clone() : null, mTileMode); break; case TYPE_COLOR_CENTER_AND_COLOR_EDGE: copy = new RadialGradient(mX, mY, mRadius, mColor0, mColor1, mTileMode); diff --git a/graphics/java/android/graphics/SweepGradient.java b/graphics/java/android/graphics/SweepGradient.java index 301092795b04f..e9cda39652f74 100644 --- a/graphics/java/android/graphics/SweepGradient.java +++ b/graphics/java/android/graphics/SweepGradient.java @@ -92,7 +92,8 @@ public class SweepGradient extends Shader { final SweepGradient copy; switch (mType) { case TYPE_COLORS_AND_POSITIONS: - copy = new SweepGradient(mCx, mCy, mColors.clone(), mPositions.clone()); + copy = new SweepGradient(mCx, mCy, mColors.clone(), + mPositions != null ? mPositions.clone() : null); break; case TYPE_COLOR_START_AND_COLOR_END: copy = new SweepGradient(mCx, mCy, mColor0, mColor1);