diff --git a/modules/juce_core/native/juce_Network_android.cpp b/modules/juce_core/native/juce_Network_android.cpp index c128cc6926ff..7d4a421c729b 100644 --- a/modules/juce_core/native/juce_Network_android.cpp +++ b/modules/juce_core/native/juce_Network_android.cpp @@ -212,30 +212,25 @@ DECLARE_JNI_CLASS (AndroidMulticastLock, "android/net/wifi/WifiManager$Multicast DECLARE_JNI_CLASS (AndroidWifiManager, "android/net/wifi/WifiManager") #undef JNI_CLASS_MEMBERS -static LocalRef getMulticastLock() +static jobject getMulticastLock() { - static LocalRef multicastLock; - static bool hasChecked = false; - - if (! hasChecked) + static GlobalRef multicastLock = [&] { - hasChecked = true; - auto* env = getEnv(); LocalRef wifiManager (env->CallObjectMethod (getAppContext().get(), AndroidContext.getSystemService, javaString ("wifi").get())); - if (wifiManager != nullptr) - { - multicastLock = LocalRef (env->CallObjectMethod (wifiManager.get(), - AndroidWifiManager.createMulticastLock, - javaString ("JUCE_MulticastLock").get())); - } - } + if (wifiManager == nullptr) + return GlobalRef{}; + + return GlobalRef (LocalRef (env->CallObjectMethod (wifiManager.get(), + AndroidWifiManager.createMulticastLock, + javaString ("JUCE_MulticastLock").get()))); + }(); - return multicastLock; + return multicastLock.get(); } JUCE_API void JUCE_CALLTYPE acquireMulticastLock(); @@ -244,7 +239,7 @@ JUCE_API void JUCE_CALLTYPE acquireMulticastLock() auto multicastLock = getMulticastLock(); if (multicastLock != nullptr) - getEnv()->CallVoidMethod (multicastLock.get(), AndroidMulticastLock.acquire); + getEnv()->CallVoidMethod (multicastLock, AndroidMulticastLock.acquire); } JUCE_API void JUCE_CALLTYPE releaseMulticastLock(); @@ -253,7 +248,7 @@ JUCE_API void JUCE_CALLTYPE releaseMulticastLock() auto multicastLock = getMulticastLock(); if (multicastLock != nullptr) - getEnv()->CallVoidMethod (multicastLock.get(), AndroidMulticastLock.release); + getEnv()->CallVoidMethod (multicastLock, AndroidMulticastLock.release); } //==============================================================================