diff options
author | Vadym Luchko (gitHub) <vluchko@luxoft.com> | 2021-10-22 17:25:01 +0300 |
---|---|---|
committer | Vadym Luchko (gitHub) <vluchko@luxoft.com> | 2021-10-22 17:25:01 +0300 |
commit | f6e7b7e3f3ee4a7f1721475b1ddcd3ce118e27de (patch) | |
tree | 20dda2719028c0bc07f9b4a2a967622734fcb0c7 | |
parent | 9fde82ae2fbf9dcd7515a595daf55d92cc3174cd (diff) | |
download | sdl_core-f6e7b7e3f3ee4a7f1721475b1ddcd3ce118e27de.tar.gz |
workaround with logger re-init
-rw-r--r-- | src/appMain/android_platform_interface.cc | 20 | ||||
-rw-r--r-- | src/components/utils/src/logger/logger_impl.cc | 5 |
2 files changed, 14 insertions, 11 deletions
diff --git a/src/appMain/android_platform_interface.cc b/src/appMain/android_platform_interface.cc index d4afdc1575..e5bc0d8114 100644 --- a/src/appMain/android_platform_interface.cc +++ b/src/appMain/android_platform_interface.cc @@ -55,9 +55,12 @@ jint JNI_OnLoad(JavaVM* vm, void*) { void StartSDLNative(JNIEnv* env, jobject) { #ifdef ENABLE_LOG + static bool __inited_log = false; auto logger_impl = std::unique_ptr<logger::LoggerImpl>(new logger::LoggerImpl()); - logger::Logger::instance(logger_impl.get()); + if (!__inited_log) { + logger::Logger::instance(logger_impl.get()); + } #endif // ENABLE_LOG const std::string internal_storage = JNI_GetMainActivityStringProperty("sdl_cache_folder_path"); @@ -76,12 +79,15 @@ void StartSDLNative(JNIEnv* env, jobject) { profile_instance.set_config_file_name(ini_name); #ifdef ENABLE_LOG - if (profile_instance.logs_enabled()) { - // Logger initialization - // Redefine for each paticular logger implementation - auto logger = - std::unique_ptr<logger::AndroidLogger>(new logger::AndroidLogger()); - logger_impl->Init(std::move(logger)); + if (!__inited_log) { + if (profile_instance.logs_enabled()) { + // Logger initialization + // Redefine for each paticular logger implementation + auto logger = + std::unique_ptr<logger::AndroidLogger>(new logger::AndroidLogger()); + logger_impl->Init(std::move(logger)); + } + __inited_log = true; } #endif diff --git a/src/components/utils/src/logger/logger_impl.cc b/src/components/utils/src/logger/logger_impl.cc index 4019220ec3..1439f7327a 100644 --- a/src/components/utils/src/logger/logger_impl.cc +++ b/src/components/utils/src/logger/logger_impl.cc @@ -36,8 +36,6 @@ namespace logger { -Logger* Logger::instance_ = nullptr; - LoggerImpl::LoggerImpl(bool use_message_loop_thread) : impl_(nullptr), use_message_loop_thread_(use_message_loop_thread) {} @@ -70,8 +68,6 @@ void LoggerImpl::DeInit() { if (impl_) { impl_->DeInit(); } - - instance_ = nullptr; } void LoggerImpl::Flush() { @@ -100,6 +96,7 @@ void LoggerImpl::PushLog(const LogMessage& log_message) { } Logger& Logger::instance(Logger* pre_init) { + static Logger* instance_; if (pre_init) { assert(instance_ == nullptr); instance_ = pre_init; |