| @@ -58,9 +58,10 @@ namespace Android | |||||
| struct Handler | struct Handler | ||||
| { | { | ||||
| JUCE_DECLARE_SINGLETON (Handler, false) | |||||
| Handler() : nativeHandler (getEnv()->NewObject (JNIHandler, JNIHandler.constructor)) {} | Handler() : nativeHandler (getEnv()->NewObject (JNIHandler, JNIHandler.constructor)) {} | ||||
| ~Handler() { clearSingletonInstance(); } | |||||
| JUCE_DECLARE_SINGLETON (Handler, false) | |||||
| bool post (jobject runnable) | bool post (jobject runnable) | ||||
| { | { | ||||
| @@ -86,6 +87,7 @@ struct AndroidMessageQueue : private Android::Runnable | |||||
| ~AndroidMessageQueue() | ~AndroidMessageQueue() | ||||
| { | { | ||||
| jassert (MessageManager::getInstance()->isThisTheMessageThread()); | jassert (MessageManager::getInstance()->isThisTheMessageThread()); | ||||
| clearSingletonInstance(); | |||||
| } | } | ||||
| bool post (MessageManager::MessageBase::Ptr&& message) | bool post (MessageManager::MessageBase::Ptr&& message) | ||||
| @@ -60,6 +60,8 @@ public: | |||||
| { | { | ||||
| if (winRTHandle != nullptr) | if (winRTHandle != nullptr) | ||||
| ::FreeLibrary (winRTHandle); | ::FreeLibrary (winRTHandle); | ||||
| clearSingletonInstance(); | |||||
| } | } | ||||
| String hStringToString (HSTRING hstr) | String hStringToString (HSTRING hstr) | ||||
| @@ -73,6 +73,9 @@ struct ReportingThread; | |||||
| struct ReportingThreadContainer : public ChangeListener, | struct ReportingThreadContainer : public ChangeListener, | ||||
| public DeletedAtShutdown | public DeletedAtShutdown | ||||
| { | { | ||||
| ReportingThreadContainer() {} | |||||
| ~ReportingThreadContainer() { clearSingletonInstance(); } | |||||
| void sendReport (String, String&, StringPairArray&); | void sendReport (String, String&, StringPairArray&); | ||||
| void changeListenerCallback (ChangeBroadcaster*) override; | void changeListenerCallback (ChangeBroadcaster*) override; | ||||
| @@ -763,6 +763,11 @@ private: | |||||
| tipInvocation.CoCreateInstance (ITipInvocation::getCLSID(), CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER); | tipInvocation.CoCreateInstance (ITipInvocation::getCLSID(), CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER); | ||||
| } | } | ||||
| ~OnScreenKeyboard() | |||||
| { | |||||
| clearSingletonInstance(); | |||||
| } | |||||
| void timerCallback() override | void timerCallback() override | ||||
| { | { | ||||
| stopTimer(); | stopTimer(); | ||||