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

Commit a6a8557d authored by sergeyv's avatar sergeyv
Browse files

Turn off simplePath optimization then Path object is used as out param

Change-Id: I4d9ae5c756b2ed1ba30483e8685ce1ad6c1f0c03
fixes:30349106
parent 004d1400
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -788,7 +788,7 @@ public class Canvas {
     * @return     true if the resulting is non-empty
     */
    public boolean clipPath(@NonNull Path path, @NonNull Region.Op op) {
        return native_clipPath(mNativeCanvasWrapper, path.ni(), op.nativeInt);
        return native_clipPath(mNativeCanvasWrapper, path.readOnlyNI(), op.nativeInt);
    }

    /**
@@ -907,7 +907,7 @@ public class Canvas {
     *                    does not intersect with the canvas' clip
     */
    public boolean quickReject(@NonNull Path path, @NonNull EdgeType type) {
        return native_quickReject(mNativeCanvasWrapper, path.ni());
        return native_quickReject(mNativeCanvasWrapper, path.readOnlyNI());
    }

    /**
@@ -1259,7 +1259,7 @@ public class Canvas {
        if (path.isSimplePath && path.rects != null) {
            native_drawRegion(mNativeCanvasWrapper, path.rects.mNativeRegion, paint.getNativeInstance());
        } else {
            native_drawPath(mNativeCanvasWrapper, path.ni(), paint.getNativeInstance());
            native_drawPath(mNativeCanvasWrapper, path.readOnlyNI(), paint.getNativeInstance());
        }
    }

@@ -1895,7 +1895,7 @@ public class Canvas {
            throw new ArrayIndexOutOfBoundsException();
        }
        native_drawTextOnPath(mNativeCanvasWrapper, text, index, count,
                path.ni(), hOffset, vOffset,
                path.readOnlyNI(), hOffset, vOffset,
                paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface);
    }

@@ -1915,7 +1915,7 @@ public class Canvas {
    public void drawTextOnPath(@NonNull String text, @NonNull Path path, float hOffset,
            float vOffset, @NonNull Paint paint) {
        if (text.length() > 0) {
            native_drawTextOnPath(mNativeCanvasWrapper, text, path.ni(), hOffset, vOffset,
            native_drawTextOnPath(mNativeCanvasWrapper, text, path.readOnlyNI(), hOffset, vOffset,
                    paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface);
        }
    }
+3 −3
Original line number Diff line number Diff line
@@ -1021,7 +1021,7 @@ public class Paint {
     *                 drawn with a hairline (width == 0)
     */
    public boolean getFillPath(Path src, Path dst) {
        return nGetFillPath(mNativePaint, src.ni(), dst.ni());
        return nGetFillPath(mNativePaint, src.readOnlyNI(), dst.mutateNI());
    }

    /**
@@ -2394,7 +2394,7 @@ public class Paint {
            throw new ArrayIndexOutOfBoundsException();
        }
        nGetTextPath(mNativePaint, mNativeTypeface, mBidiFlags, text, index, count, x, y,
                path.ni());
                path.mutateNI());
    }

    /**
@@ -2416,7 +2416,7 @@ public class Paint {
            throw new IndexOutOfBoundsException();
        }
        nGetTextPath(mNativePaint, mNativeTypeface, mBidiFlags, text, start, end, x, y,
                path.ni());
                path.mutateNI());
    }

    /**
+6 −1
Original line number Diff line number Diff line
@@ -775,7 +775,12 @@ public class Path {
        }
    }

    final long ni() {
    final long readOnlyNI() {
        return mNativePath;
    }

    final long mutateNI() {
        isSimplePath = false;
        return mNativePath;
    }

+1 −1
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ public class PathDashPathEffect extends PathEffect {
     */
    public PathDashPathEffect(Path shape, float advance, float phase,
                              Style style) {
        native_instance = nativeCreate(shape.ni(), advance, phase,
        native_instance = nativeCreate(shape.readOnlyNI(), advance, phase,
                                       style.native_style);
    }
    
+3 −4
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ public class PathMeasure {
    public PathMeasure(Path path, boolean forceClosed) {
        // The native implementation does not copy the path, prevent it from being GC'd
        mPath = path;
        native_instance = native_create(path != null ? path.ni() : 0,
        native_instance = native_create(path != null ? path.readOnlyNI() : 0,
                                        forceClosed);
    }

@@ -60,7 +60,7 @@ public class PathMeasure {
    public void setPath(Path path, boolean forceClosed) {
        mPath = path;
        native_setPath(native_instance,
                       path != null ? path.ni() : 0,
                       path != null ? path.readOnlyNI() : 0,
                       forceClosed);
    }

@@ -134,8 +134,7 @@ public class PathMeasure {
            return false;
        }

        dst.isSimplePath = false;
        return native_getSegment(native_instance, startD, stopD, dst.ni(), startWithMoveTo);
        return native_getSegment(native_instance, startD, stopD, dst.mutateNI(), startWithMoveTo);
    }

    /**
Loading