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

Commit c0ce6c42 authored by Hans Boehm's avatar Hans Boehm Committed by Gerrit Code Review
Browse files

Merge "Reduce risk of memory corruption due to finalization."

parents 596fd38a ffa84e00
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -147,11 +147,12 @@ public class Interpolator {
    @Override
    protected void finalize() throws Throwable {
        nativeDestructor(native_instance);
        native_instance = 0;  // Other finalizers can still call us.
    }
    
    private int mValueCount;
    private int mFrameCount;
    private final long native_instance;
    private long native_instance;

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

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

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

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