diff options
Diffstat (limited to 'platform/android/src/offline/offline_region_error.cpp')
-rw-r--r-- | platform/android/src/offline/offline_region_error.cpp | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/platform/android/src/offline/offline_region_error.cpp b/platform/android/src/offline/offline_region_error.cpp index b0a19f934f..02432757d4 100644 --- a/platform/android/src/offline/offline_region_error.cpp +++ b/platform/android/src/offline/offline_region_error.cpp @@ -28,25 +28,16 @@ jni::Object<OfflineRegionError> OfflineRegionError::New(jni::JNIEnv& env, mbgl:: break; } - // Convert - auto jReason = jni::Make<jni::String>(env, reason); - auto jMessage = jni::Make<jni::String>(env, error.message); - - // Create java object + static auto javaClass = jni::Class<OfflineRegionError>::Singleton(env); static auto constructor = javaClass.GetConstructor<jni::String, jni::String>(env); - auto jError = javaClass.New(env, constructor, jReason, jMessage); - - // Delete references - jni::DeleteLocalRef(env, jReason); - jni::DeleteLocalRef(env, jMessage); - return jError; + return javaClass.New(env, constructor, + *jni::SeizeLocal(env, jni::Make<jni::String>(env, reason)), + *jni::SeizeLocal(env, jni::Make<jni::String>(env, error.message))); } -jni::Class<OfflineRegionError> OfflineRegionError::javaClass; - void OfflineRegionError::registerNative(jni::JNIEnv& env) { - javaClass = *jni::Class<OfflineRegionError>::Find(env).NewGlobalRef(env).release(); + jni::Class<OfflineRegionError>::Singleton(env); } } // namespace android |