OSDN Git Service

Resetting the native shader instance when the shader changes.
authorWinson <winsonc@google.com>
Thu, 14 Jan 2016 20:53:28 +0000 (12:53 -0800)
committerWinson <winsonc@google.com>
Thu, 14 Jan 2016 23:43:38 +0000 (15:43 -0800)
Change-Id: Ib4f8f02d2b777049072e33eabf07d00945c08779

graphics/java/android/graphics/Paint.java

index 90522f7..c8c60c3 100644 (file)
@@ -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;