diff options
Diffstat (limited to 'platform/android/src/logger.cpp')
-rw-r--r-- | platform/android/src/logger.cpp | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/platform/android/src/logger.cpp b/platform/android/src/logger.cpp index 0ade914604..ddc4d84525 100644 --- a/platform/android/src/logger.cpp +++ b/platform/android/src/logger.cpp @@ -5,32 +5,29 @@ namespace mbgl { namespace android { void Logger::registerNative(jni::JNIEnv& env) { - _class = *jni::Class<Logger>::Find(env).NewGlobalRef(env).release(); + jni::Class<Logger>::Singleton(env); } -jni::Class<Logger> Logger::_class; - void Logger::log(jni::JNIEnv& env, EventSeverity severity, const std::string &msg) { - auto tag = jni::Make<jni::String>(env, "Mbgl"); - auto message = jni::Make<jni::String>(env, msg); + static auto _class = jni::Class<Logger>::Singleton(env); + + auto tag = jni::SeizeLocal(env, jni::Make<jni::String>(env, "Mbgl")); + auto message = jni::SeizeLocal(env, jni::Make<jni::String>(env, msg)); using Signature = void(jni::String, jni::String); if (severity == EventSeverity::Debug) { auto static debug = _class.GetStaticMethod<Signature>(env, "d"); - _class.Call(env, debug, tag, message); + _class.Call(env, debug, *tag, *message); } else if (severity == EventSeverity::Info) { auto static info = _class.GetStaticMethod<Signature>(env, "i"); - _class.Call(env, info, tag, message); + _class.Call(env, info, *tag, *message); } else if(severity == EventSeverity::Warning) { auto static warning = _class.GetStaticMethod<Signature>(env, "w"); - _class.Call(env, warning, tag, message); + _class.Call(env, warning, *tag, *message); } else { auto static error = _class.GetStaticMethod<Signature>(env, "e"); - _class.Call(env, error, tag, message); + _class.Call(env, error, *tag, *message); } - - DeleteLocalRef(env, tag); - DeleteLocalRef(env, message); } } // namespace android |