Merge "Path.native_trim should return long, not int."
diff --git a/core/jni/android/graphics/Path.cpp b/core/jni/android/graphics/Path.cpp
index c4d728f..76a0554 100644
--- a/core/jni/android/graphics/Path.cpp
+++ b/core/jni/android/graphics/Path.cpp
@@ -516,7 +516,7 @@
         return result;
     }
 
-    static SkPathMeasure* trim(JNIEnv* env, jobject clazz, jlong inPathPtr, jlong outPathPtr,
+    static jlong trim(JNIEnv* env, jobject clazz, jlong inPathPtr, jlong outPathPtr,
             jlong pathMeasurePtr, jfloat trimStart, jfloat trimEnd, jfloat trimOffset) {
         SkPath* inPath = reinterpret_cast<SkPath*>(inPathPtr);
         SkPath* outPath = reinterpret_cast<SkPath*>(outPathPtr);
@@ -525,7 +525,7 @@
             if (outPath != NULL) {
                 *outPath = *inPath;
             }
-            return pathMeasure;
+            return reinterpret_cast<jlong>(pathMeasure);
         }
 
         bool modifyPath = (outPath == NULL);
@@ -557,7 +557,7 @@
             *inPath = *outPath;
             delete outPath;
         }
-        return pathMeasure;
+        return reinterpret_cast<jlong>(pathMeasure);
     }
 
     static void destroyMeasure(JNIEnv* env, jobject clazz, jlong measure) {
@@ -606,7 +606,7 @@
     {"native_op","(JJIJ)Z", (void*) SkPathGlue::op},
     {"native_approximate", "(JF)[F", (void*) SkPathGlue::approximate},
     {"native_destroyMeasure","(J)V", (void*) SkPathGlue::destroyMeasure},
-    {"native_trim","(JJJFFF)I", (void*) SkPathGlue::trim},
+    {"native_trim","(JJJFFF)J", (void*) SkPathGlue::trim},
 };
 
 int register_android_graphics_Path(JNIEnv* env) {
diff --git a/graphics/java/android/graphics/Path.java b/graphics/java/android/graphics/Path.java
index 5ac3f85..def1db6 100644
--- a/graphics/java/android/graphics/Path.java
+++ b/graphics/java/android/graphics/Path.java
@@ -875,7 +875,7 @@
     private static native boolean native_op(long path1, long path2, int op, long result);
     private static native void finalizer(long nPath);
     private static native float[] native_approximate(long nPath, float error);
-    private static native int native_trim(long nPath, long nTargetPath, long nPathMeasure,
+    private static native long native_trim(long nPath, long nTargetPath, long nPathMeasure,
             float trimStart, float trimEnd, float trimOffset);
     private static native void native_destroyMeasure(long nPathMeasure);
 }