From dfb8cb4580aef56a1f1e286389cdddf24c96792b Mon Sep 17 00:00:00 2001 From: Winson Date: Thu, 14 Jan 2016 12:53:28 -0800 Subject: [PATCH] Resetting the native shader instance when the shader changes. Change-Id: Ib4f8f02d2b777049072e33eabf07d00945c08779 --- graphics/java/android/graphics/Paint.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/graphics/java/android/graphics/Paint.java b/graphics/java/android/graphics/Paint.java index 90522f71a845..c8c60c360879 100644 --- a/graphics/java/android/graphics/Paint.java +++ b/graphics/java/android/graphics/Paint.java @@ -1061,6 +1061,11 @@ public class Paint { * @return shader */ public Shader setShader(Shader shader) { + // If mShader changes, cached value of native shader aren't valid, since + // old shader's pointer may be reused by another shader allocation later + if (mShader != shader) { + mNativeShader = -1; + } // Defer setting the shader natively until getNativeInstance() is called mShader = shader; return shader; -- 2.11.0