summaryrefslogtreecommitdiff
path: root/platform/android/src/geojson/util.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/src/geojson/util.hpp')
-rw-r--r--platform/android/src/geojson/util.hpp26
1 files changed, 9 insertions, 17 deletions
diff --git a/platform/android/src/geojson/util.hpp b/platform/android/src/geojson/util.hpp
index 5e6d90a953..59154516fa 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