From 92ca22c08095be91e9b89414ec388aca616519f7 Mon Sep 17 00:00:00 2001 From: reuk Date: Fri, 12 Mar 2021 17:59:23 +0000 Subject: [PATCH] UIViewComponentPeer: Fix issue where view may be accessed after deletion --- .../native/juce_ios_UIViewComponentPeer.mm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm b/modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm index f08b077483..b21098fcb3 100644 --- a/modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm +++ b/modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm @@ -271,7 +271,12 @@ static void sendScreenBoundsUpdate (JuceUIViewController* c) static bool isKioskModeView (JuceUIViewController* c) { JuceUIView* juceView = (JuceUIView*) [c view]; - jassert (juceView != nil && juceView->owner != nullptr); + + if (juceView == nil || juceView->owner == nullptr) + { + jassertfalse; + return false; + } return Desktop::getInstance().getKioskModeComponent() == &(juceView->owner->getComponent()); } @@ -565,6 +570,12 @@ UIViewComponentPeer::~UIViewComponentPeer() if (! isSharedWindow) { [((JuceUIWindow*) window) setOwner: nil]; + + #if defined (__IPHONE_13_0) + if (@available (iOS 13.0, *)) + window.windowScene = nil; + #endif + [window release]; } }