diff options
Diffstat (limited to 'platform/android/src/geojson/feature_collection.cpp')
-rw-r--r-- | platform/android/src/geojson/feature_collection.cpp | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/platform/android/src/geojson/feature_collection.cpp b/platform/android/src/geojson/feature_collection.cpp index 18a41d48fa..f90d5226b7 100644 --- a/platform/android/src/geojson/feature_collection.cpp +++ b/platform/android/src/geojson/feature_collection.cpp @@ -6,7 +6,7 @@ namespace mbgl { namespace android { namespace geojson { -mbgl::FeatureCollection FeatureCollection::convert(jni::JNIEnv& env, jni::Object<FeatureCollection> jCollection) { +mbgl::FeatureCollection FeatureCollection::convert(jni::JNIEnv& env, const jni::Object<FeatureCollection>& jCollection) { auto collection = mbgl::FeatureCollection(); if (jCollection) { @@ -16,29 +16,22 @@ mbgl::FeatureCollection FeatureCollection::convert(jni::JNIEnv& env, jni::Object 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, 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"); +jni::Local<jni::Object<java::util::List>> FeatureCollection::features(jni::JNIEnv& env, const jni::Object<FeatureCollection>& jCollection) { + 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 |