diff options
Diffstat (limited to 'platform/android/src/geojson/feature_collection.cpp')
-rw-r--r-- | platform/android/src/geojson/feature_collection.cpp | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/platform/android/src/geojson/feature_collection.cpp b/platform/android/src/geojson/feature_collection.cpp index 18a41d48fa..c2825e037b 100644 --- a/platform/android/src/geojson/feature_collection.cpp +++ b/platform/android/src/geojson/feature_collection.cpp @@ -10,35 +10,28 @@ mbgl::FeatureCollection FeatureCollection::convert(jni::JNIEnv& env, jni::Object auto collection = mbgl::FeatureCollection(); if (jCollection) { - auto jFeatureList = FeatureCollection::features(env, jCollection); - auto jFeatures = java::util::List::toArray<Feature>(env, jFeatureList); - auto size = size_t(jFeatures.Length(env)); + auto jFeatureList = jni::SeizeLocal(env, FeatureCollection::features(env, jCollection)); + auto jFeatures = jni::SeizeLocal(env, java::util::List::toArray<Feature>(env, *jFeatureList)); + auto size = size_t(jFeatures->Length(env)); collection.reserve(size); for (size_t i = 0; i < size; i++) { - auto jFeature = jFeatures.Get(env, i); - collection.push_back(Feature::convert(env, jFeature)); - jni::DeleteLocalRef(env, jFeature); + collection.push_back(Feature::convert(env, *jni::SeizeLocal(env, jFeatures->Get(env, i)))); } - - jni::DeleteLocalRef(env, jFeatures); - jni::DeleteLocalRef(env, jFeatureList); } return collection; } jni::Object<java::util::List> FeatureCollection::features(jni::JNIEnv& env, jni::Object<FeatureCollection> jCollection) { - static auto method = FeatureCollection::javaClass.GetMethod<jni::Object<java::util::List> ()>(env, "features"); + static auto javaClass = jni::Class<FeatureCollection>::Singleton(env); + static auto method = javaClass.GetMethod<jni::Object<java::util::List> ()>(env, "features"); return jCollection.Call(env, method); } void FeatureCollection::registerNative(jni::JNIEnv& env) { - // Lookup the class - javaClass = *jni::Class<FeatureCollection>::Find(env).NewGlobalRef(env).release(); + jni::Class<FeatureCollection>::Singleton(env); } -jni::Class<FeatureCollection> FeatureCollection::javaClass; - } // namespace geojson } // namespace android } // namespace mbgl
\ No newline at end of file |