Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 58c27e3e authored by Hans Boehm's avatar Hans Boehm Committed by Android Git Automerger
Browse files

am c0ce6c42: Merge "Reduce risk of memory corruption due to finalization."

* commit 'c0ce6c42':
  Reduce risk of memory corruption due to finalization.
parents 03c26b27 c0ce6c42
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -147,11 +147,12 @@ public class Interpolator {
    @Override
    @Override
    protected void finalize() throws Throwable {
    protected void finalize() throws Throwable {
        nativeDestructor(native_instance);
        nativeDestructor(native_instance);
        native_instance = 0;  // Other finalizers can still call us.
    }
    }
    
    
    private int mValueCount;
    private int mValueCount;
    private int mFrameCount;
    private int mFrameCount;
    private final long native_instance;
    private long native_instance;


    private static native long nativeConstructor(int valueCount, int frameCount);
    private static native long nativeConstructor(int valueCount, int frameCount);
    private static native void nativeDestructor(long native_instance);
    private static native void nativeDestructor(long native_instance);
+1 −0
Original line number Original line Diff line number Diff line
@@ -25,6 +25,7 @@ public class MaskFilter {


    protected void finalize() throws Throwable {
    protected void finalize() throws Throwable {
        nativeDestructor(native_instance);
        nativeDestructor(native_instance);
        native_instance = 0;  // Other finalizers can still call us.
    }
    }


    private static native void nativeDestructor(long native_filter);
    private static native void nativeDestructor(long native_filter);
+1 −0
Original line number Original line Diff line number Diff line
@@ -827,6 +827,7 @@ public class Matrix {
    protected void finalize() throws Throwable {
    protected void finalize() throws Throwable {
        try {
        try {
            finalizer(native_instance);
            finalizer(native_instance);
            native_instance = 0;  // Other finalizers can still call us.
        } finally {
        } finally {
            super.finalize();
            super.finalize();
        }
        }
+2 −1
Original line number Original line Diff line number Diff line
@@ -71,7 +71,7 @@ public class NinePatch {
     *
     *
     * @hide
     * @hide
     */
     */
    public final long mNativeChunk;
    public long mNativeChunk;


    private Paint mPaint;
    private Paint mPaint;
    private String mSrcName;
    private String mSrcName;
@@ -121,6 +121,7 @@ public class NinePatch {
            if (mNativeChunk != 0) {
            if (mNativeChunk != 0) {
                // only attempt to destroy correctly initilized chunks
                // only attempt to destroy correctly initilized chunks
                nativeFinalize(mNativeChunk);
                nativeFinalize(mNativeChunk);
                mNativeChunk = 0;
            }
            }
        } finally {
        } finally {
            super.finalize();
            super.finalize();
+1 −0
Original line number Original line Diff line number Diff line
@@ -2435,6 +2435,7 @@ public class Paint {
    protected void finalize() throws Throwable {
    protected void finalize() throws Throwable {
        try {
        try {
            finalizer(mNativePaint);
            finalizer(mNativePaint);
            mNativePaint = 0;
        } finally {
        } finally {
            super.finalize();
            super.finalize();
        }
        }
Loading