diff options
Diffstat (limited to 'platform/android/src/geojson/util.hpp')
-rw-r--r-- | platform/android/src/geojson/util.hpp | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/platform/android/src/geojson/util.hpp b/platform/android/src/geojson/util.hpp index 5e6d90a95..59154516f 100644 --- a/platform/android/src/geojson/util.hpp +++ b/platform/android/src/geojson/util.hpp @@ -23,36 +23,28 @@ To convertExplicit(From&& src) { * Geometry -> List<Point> */ template <class T> -static jni::Object<java::util::List> asPointsList(jni::JNIEnv& env, const T& pointsList) { - auto jarray = jni::Array<jni::Object<Point>>::New(env, pointsList.size(), Point::javaClass); +static jni::Local<jni::Object<java::util::List>> asPointsList(jni::JNIEnv& env, const T& pointsList) { + auto jarray = jni::Array<jni::Object<Point>>::New(env, pointsList.size()); for (jni::jsize i = 0; i < pointsList.size(); i++) { - auto jPoint = Point::New(env, pointsList.at(i)); - jarray.Set(env, i, jPoint); - jni::DeleteLocalRef(env, jPoint); + jarray.Set(env, i, Point::New(env, pointsList.at(i))); } - auto jList = java::util::Arrays::asList(env, jarray); - jni::DeleteLocalRef(env, jarray); - return jList; + return java::util::Arrays::asList(env, jarray); } /** * Geometry -> List<List<Point>> */ template <class SHAPE> -static jni::Object<java::util::List> asPointsListsList(JNIEnv& env, SHAPE value) { - auto jarray = jni::Array<jni::Object<java::util::List>>::New(env, value.size(), java::util::List::javaClass); +static jni::Local<jni::Object<java::util::List>> asPointsListsList(JNIEnv& env, const SHAPE& value) { + auto jarray = jni::Array<jni::Object<java::util::List>>::New(env, value.size()); - for (size_t i = 0; i < value.size(); i = i + 1) { - auto pointsList = asPointsList(env, value[i]); - jarray.Set(env, i, pointsList); - jni::DeleteLocalRef(env, pointsList); + for (size_t i = 0; i < value.size(); i++) { + jarray.Set(env, i, asPointsList(env, value[i])); } - auto jList = java::util::Arrays::asList(env, jarray); - jni::DeleteLocalRef(env, jarray); - return jList; + return java::util::Arrays::asList(env, jarray); } } // namespace geojson |