From f5dc5c3956f9ca8ec935ec18b608b7e51e090f1e Mon Sep 17 00:00:00 2001 From: reuk Date: Tue, 21 Oct 2025 13:33:04 +0100 Subject: [PATCH] Android: Fix crash when deleting peer on touch event --- modules/juce_gui_basics/native/juce_Windowing_android.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/juce_gui_basics/native/juce_Windowing_android.cpp b/modules/juce_gui_basics/native/juce_Windowing_android.cpp index 837c007d68..416ea007af 100644 --- a/modules/juce_gui_basics/native/juce_Windowing_android.cpp +++ b/modules/juce_gui_basics/native/juce_Windowing_android.cpp @@ -1762,6 +1762,8 @@ public: if (touchesDown == 0) ModifierKeys::currentModifiers = ModifierKeys::currentModifiers.withoutMouseButtons(); + WeakReference self { this }; + handleMouseEvent (MouseInputSource::InputSourceType::touch, pos, ModifierKeys::currentModifiers.withoutMouseButtons(), @@ -1771,6 +1773,9 @@ public: {}, index); + if (self == nullptr) + return; + handleMouseEvent (MouseInputSource::InputSourceType::touch, MouseInputSource::offscreenMousePos, ModifierKeys::currentModifiers.withoutMouseButtons(), @@ -2541,6 +2546,7 @@ private: //============================================================================== JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AndroidComponentPeer) + JUCE_DECLARE_WEAK_REFERENCEABLE (AndroidComponentPeer) }; //==============================================================================