diff --git a/modules/juce_events/native/juce_android_Messaging.cpp b/modules/juce_events/native/juce_android_Messaging.cpp index 7fa14730f3..682edae824 100644 --- a/modules/juce_events/native/juce_android_Messaging.cpp +++ b/modules/juce_events/native/juce_android_Messaging.cpp @@ -58,9 +58,10 @@ namespace Android struct Handler { - JUCE_DECLARE_SINGLETON (Handler, false) - Handler() : nativeHandler (getEnv()->NewObject (JNIHandler, JNIHandler.constructor)) {} + ~Handler() { clearSingletonInstance(); } + + JUCE_DECLARE_SINGLETON (Handler, false) bool post (jobject runnable) { @@ -86,6 +87,7 @@ struct AndroidMessageQueue : private Android::Runnable ~AndroidMessageQueue() { jassert (MessageManager::getInstance()->isThisTheMessageThread()); + clearSingletonInstance(); } bool post (MessageManager::MessageBase::Ptr&& message) diff --git a/modules/juce_events/native/juce_win32_WinRTWrapper.h b/modules/juce_events/native/juce_win32_WinRTWrapper.h index c5fb4974a5..b47162b788 100644 --- a/modules/juce_events/native/juce_win32_WinRTWrapper.h +++ b/modules/juce_events/native/juce_win32_WinRTWrapper.h @@ -60,6 +60,8 @@ public: { if (winRTHandle != nullptr) ::FreeLibrary (winRTHandle); + + clearSingletonInstance(); } String hStringToString (HSTRING hstr) diff --git a/modules/juce_gui_basics/misc/juce_JUCESplashScreen.cpp b/modules/juce_gui_basics/misc/juce_JUCESplashScreen.cpp index e460917038..be1802b3d0 100644 --- a/modules/juce_gui_basics/misc/juce_JUCESplashScreen.cpp +++ b/modules/juce_gui_basics/misc/juce_JUCESplashScreen.cpp @@ -73,6 +73,9 @@ struct ReportingThread; struct ReportingThreadContainer : public ChangeListener, public DeletedAtShutdown { + ReportingThreadContainer() {} + ~ReportingThreadContainer() { clearSingletonInstance(); } + void sendReport (String, String&, StringPairArray&); void changeListenerCallback (ChangeBroadcaster*) override; diff --git a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp index a0ebdb6630..0e28452007 100644 --- a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp +++ b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp @@ -763,6 +763,11 @@ private: tipInvocation.CoCreateInstance (ITipInvocation::getCLSID(), CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER); } + ~OnScreenKeyboard() + { + clearSingletonInstance(); + } + void timerCallback() override { stopTimer();