Loading graphics/java/android/graphics/ComposeShader.java +10 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,16 @@ public class ComposeShader extends Shader { mShaderA.getNativeInstance(), mShaderB.getNativeInstance(), mPorterDuffMode); } @Override void verifyNativeInstance() { if (mShaderA.getNativeInstance() != mNativeInstanceShaderA || mShaderB.getNativeInstance() != mNativeInstanceShaderB) { // Child shader native instance has been updated, // so our cached native instance is no longer valid - discard it discardNativeInstance(); } } /** * @hide */ Loading graphics/java/android/graphics/Shader.java +11 −1 Original line number Diff line number Diff line Loading @@ -105,13 +105,20 @@ public class Shader { return 0; } private void discardNativeInstance() { void discardNativeInstance() { if (mNativeInstance != 0) { nativeSafeUnref(mNativeInstance); mNativeInstance = 0; } } /** * Callback for subclasses to call {@link #discardNativeInstance()} if the most recently * constructed native instance is no longer valid. */ void verifyNativeInstance() { } @Override protected void finalize() throws Throwable { try { Loading Loading @@ -148,6 +155,9 @@ public class Shader { throw new IllegalStateException("attempting to use a finalized Shader"); } // verify mNativeInstance is valid verifyNativeInstance(); if (mNativeInstance == 0) { mNativeInstance = createNativeInstance(mLocalMatrix == null ? 0 : mLocalMatrix.native_instance); Loading Loading
graphics/java/android/graphics/ComposeShader.java +10 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,16 @@ public class ComposeShader extends Shader { mShaderA.getNativeInstance(), mShaderB.getNativeInstance(), mPorterDuffMode); } @Override void verifyNativeInstance() { if (mShaderA.getNativeInstance() != mNativeInstanceShaderA || mShaderB.getNativeInstance() != mNativeInstanceShaderB) { // Child shader native instance has been updated, // so our cached native instance is no longer valid - discard it discardNativeInstance(); } } /** * @hide */ Loading
graphics/java/android/graphics/Shader.java +11 −1 Original line number Diff line number Diff line Loading @@ -105,13 +105,20 @@ public class Shader { return 0; } private void discardNativeInstance() { void discardNativeInstance() { if (mNativeInstance != 0) { nativeSafeUnref(mNativeInstance); mNativeInstance = 0; } } /** * Callback for subclasses to call {@link #discardNativeInstance()} if the most recently * constructed native instance is no longer valid. */ void verifyNativeInstance() { } @Override protected void finalize() throws Throwable { try { Loading Loading @@ -148,6 +155,9 @@ public class Shader { throw new IllegalStateException("attempting to use a finalized Shader"); } // verify mNativeInstance is valid verifyNativeInstance(); if (mNativeInstance == 0) { mNativeInstance = createNativeInstance(mLocalMatrix == null ? 0 : mLocalMatrix.native_instance); Loading