diff --git a/android/src/main/java/com/horcrux/svg/ImageShadowNode.java b/android/src/main/java/com/horcrux/svg/ImageShadowNode.java index b72d54e0..67504a07 100644 --- a/android/src/main/java/com/horcrux/svg/ImageShadowNode.java +++ b/android/src/main/java/com/horcrux/svg/ImageShadowNode.java @@ -60,7 +60,7 @@ class ImageShadowNode extends RenderableShadowNode { 0, 1, 0, 0, 0, 1 }; - private Matrix mMatrix = new Matrix(); + private Matrix mMatrix = null; @ReactProp(name = "x") public void setX(String x) { @@ -123,6 +123,9 @@ class ImageShadowNode extends RenderableShadowNode { if (matrixArray != null) { int matrixSize = PropHelper.toMatrixData(matrixArray, sRawMatrix, mScale); if (matrixSize == 6) { + if (mMatrix == null) { + mMatrix = new Matrix(); + } mMatrix.setValues(sRawMatrix); } else if (matrixSize != -1) { FLog.w(ReactConstants.TAG, "RNSVG: Transform matrices must be of size 6"); diff --git a/android/src/main/java/com/horcrux/svg/LinearGradientShadowNode.java b/android/src/main/java/com/horcrux/svg/LinearGradientShadowNode.java index 6c6026a5..1f19d886 100644 --- a/android/src/main/java/com/horcrux/svg/LinearGradientShadowNode.java +++ b/android/src/main/java/com/horcrux/svg/LinearGradientShadowNode.java @@ -37,7 +37,7 @@ class LinearGradientShadowNode extends DefinitionShadowNode { 0, 1, 0, 0, 0, 1 }; - private Matrix mMatrix = new Matrix(); + private Matrix mMatrix = null; @ReactProp(name = "x1") public void setX1(String x1) { @@ -87,6 +87,9 @@ class LinearGradientShadowNode extends DefinitionShadowNode { if (matrixArray != null) { int matrixSize = PropHelper.toMatrixData(matrixArray, sRawMatrix, mScale); if (matrixSize == 6) { + if (mMatrix == null) { + mMatrix = new Matrix(); + } mMatrix.setValues(sRawMatrix); } else if (matrixSize != -1) { FLog.w(ReactConstants.TAG, "RNSVG: Transform matrices must be of size 6"); diff --git a/android/src/main/java/com/horcrux/svg/RadialGradientShadowNode.java b/android/src/main/java/com/horcrux/svg/RadialGradientShadowNode.java index b40ed16e..6f3dd88c 100644 --- a/android/src/main/java/com/horcrux/svg/RadialGradientShadowNode.java +++ b/android/src/main/java/com/horcrux/svg/RadialGradientShadowNode.java @@ -38,7 +38,7 @@ class RadialGradientShadowNode extends DefinitionShadowNode { 0, 1, 0, 0, 0, 1 }; - private Matrix mMatrix = new Matrix(); + private Matrix mMatrix = null; @ReactProp(name = "fx") public void setFx(String fx) { @@ -100,6 +100,9 @@ class RadialGradientShadowNode extends DefinitionShadowNode { if (matrixArray != null) { int matrixSize = PropHelper.toMatrixData(matrixArray, sRawMatrix, mScale); if (matrixSize == 6) { + if (mMatrix == null) { + mMatrix = new Matrix(); + } mMatrix.setValues(sRawMatrix); } else if (matrixSize != -1) { FLog.w(ReactConstants.TAG, "RNSVG: Transform matrices must be of size 6"); diff --git a/android/src/main/java/com/horcrux/svg/VirtualNode.java b/android/src/main/java/com/horcrux/svg/VirtualNode.java index a259d7c9..989ea320 100644 --- a/android/src/main/java/com/horcrux/svg/VirtualNode.java +++ b/android/src/main/java/com/horcrux/svg/VirtualNode.java @@ -219,6 +219,9 @@ abstract class VirtualNode extends LayoutShadowNode { if (matrixArray != null) { int matrixSize = PropHelper.toMatrixData(matrixArray, sRawMatrix, mScale); if (matrixSize == 6) { + if (mMatrix == null) { + mMatrix = new Matrix(); + } mMatrix.setValues(sRawMatrix); } else if (matrixSize != -1) { FLog.w(ReactConstants.TAG, "RNSVG: Transform matrices must be of size 6");