1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-09 23:34:20 +00:00

Android: Fix crash when using NetworkServiceDiscovery

This commit is contained in:
attila 2023-12-14 19:16:21 +01:00 committed by Attila Szarvas
parent 90c15c4a7b
commit 6219eb950f

View file

@ -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<jobject> getMulticastLock()
static jobject getMulticastLock()
{
static LocalRef<jobject> multicastLock;
static bool hasChecked = false;
if (! hasChecked)
static GlobalRef multicastLock = [&]
{
hasChecked = true;
auto* env = getEnv();
LocalRef<jobject> wifiManager (env->CallObjectMethod (getAppContext().get(),
AndroidContext.getSystemService,
javaString ("wifi").get()));
if (wifiManager != nullptr)
{
multicastLock = LocalRef<jobject> (env->CallObjectMethod (wifiManager.get(),
AndroidWifiManager.createMulticastLock,
javaString ("JUCE_MulticastLock").get()));
}
}
if (wifiManager == nullptr)
return GlobalRef{};
return multicastLock;
return GlobalRef (LocalRef<jobject> (env->CallObjectMethod (wifiManager.get(),
AndroidWifiManager.createMulticastLock,
javaString ("JUCE_MulticastLock").get())));
}();
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);
}
//==============================================================================