diff options
Diffstat (limited to 'platform/android/src/geojson/polygon.cpp')
-rw-r--r-- | platform/android/src/geojson/polygon.cpp | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/platform/android/src/geojson/polygon.cpp b/platform/android/src/geojson/polygon.cpp index 96058b63b3..add843e294 100644 --- a/platform/android/src/geojson/polygon.cpp +++ b/platform/android/src/geojson/polygon.cpp @@ -9,22 +9,17 @@ namespace android { namespace geojson { jni::Object<Polygon> Polygon::New(jni::JNIEnv& env, const mbgl::Polygon<double>& polygon) { - auto jList = asPointsListsList(env, polygon); - + static auto javaClass = jni::Class<Polygon>::Singleton(env); static auto method = javaClass.GetStaticMethod<jni::Object<Polygon> (jni::Object<java::util::List>)>(env, "fromLngLats"); - auto jPolygon = javaClass.Call(env, method, jList); - jni::DeleteLocalRef(env, jList); - return jPolygon; + return javaClass.Call(env, method, *jni::SeizeLocal(env, asPointsListsList(env, polygon))); } mapbox::geojson::polygon Polygon::convert(jni::JNIEnv &env, jni::Object<Polygon> jPolygon) { mapbox::geojson::polygon polygon; if (jPolygon) { - auto jPositionListsList = Polygon::coordinates(env, jPolygon); - polygon = Polygon::convert(env, jPositionListsList); - jni::DeleteLocalRef(env, jPositionListsList); + polygon = Polygon::convert(env, *jni::SeizeLocal(env, Polygon::coordinates(env, jPolygon))); } return polygon; @@ -46,17 +41,15 @@ mapbox::geojson::polygon Polygon::convert(jni::JNIEnv &env, jni::Object<java::ut jni::Object<java::util::List> Polygon::coordinates(jni::JNIEnv &env, jni::Object<Polygon> jPolygon) { - static auto method = Polygon::javaClass.GetMethod<jni::Object<java::util::List> ()>(env, "coordinates"); + static auto javaClass = jni::Class<Polygon>::Singleton(env); + static auto method = javaClass.GetMethod<jni::Object<java::util::List> ()>(env, "coordinates"); return jPolygon.Call(env, method); } void Polygon::registerNative(jni::JNIEnv &env) { - // Lookup the class - javaClass = *jni::Class<Polygon>::Find(env).NewGlobalRef(env).release(); + jni::Class<Polygon>::Singleton(env); } -jni::Class<Polygon> Polygon::javaClass; - } // namespace geojson } // namespace android } // namespace mbgl
\ No newline at end of file |