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

am: 2ef3bdbd7a

Change-Id: I7e1a028c2b7596e2697fd319a6c899ce92a4fcc8
This commit is contained in:
sergeyv
2016-07-28 00:58:07 +00:00
committed by android-build-merger
6 changed files with 21 additions and 17 deletions

View File

@@ -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);
}
}

View File

@@ -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());
}
/**

View File

@@ -775,7 +775,12 @@ public class Path {
}
}
final long ni() {
final long readOnlyNI() {
return mNativePath;
}
final long mutateNI() {
isSimplePath = false;
return mNativePath;
}

View File

@@ -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);
}

View File

@@ -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);
}
/**

View File

@@ -110,7 +110,7 @@ public class Region implements Parcelable {
* (with no antialiasing).
*/
public boolean setPath(Path path, Region clip) {
return nativeSetPath(mNativeRegion, path.ni(), clip.mNativeRegion);
return nativeSetPath(mNativeRegion, path.readOnlyNI(), clip.mNativeRegion);
}
/**
@@ -155,7 +155,7 @@ public class Region implements Parcelable {
*/
public Path getBoundaryPath() {
Path path = new Path();
nativeGetBoundaryPath(mNativeRegion, path.ni());
nativeGetBoundaryPath(mNativeRegion, path.mutateNI());
return path;
}
@@ -164,7 +164,7 @@ public class Region implements Parcelable {
* path will also be empty.
*/
public boolean getBoundaryPath(Path path) {
return nativeGetBoundaryPath(mNativeRegion, path.ni());
return nativeGetBoundaryPath(mNativeRegion, path.mutateNI());
}
/**