From 8ec8f32935a76d2bcd2a3111af29f0d535ddff45 Mon Sep 17 00:00:00 2001 From: True Zhuanjia Date: Wed, 11 Feb 2026 15:00:23 +0800 Subject: [PATCH] crash fixes --- VoidLink/Stream/VideoDecoderRenderer.m | 27 ++++++++++--------- .../ViewControllers/SettingsViewController.m | 2 +- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/VoidLink/Stream/VideoDecoderRenderer.m b/VoidLink/Stream/VideoDecoderRenderer.m index aabc6145..cbc9fb51 100644 --- a/VoidLink/Stream/VideoDecoderRenderer.m +++ b/VoidLink/Stream/VideoDecoderRenderer.m @@ -441,21 +441,22 @@ int DrSubmitDecodeUnit(PDECODE_UNIT decodeUnit); [[NSNotificationCenter defaultCenter] removeObserver:self]; [_displayLink invalidate]; } -- (void)cleanup -{ - [_frameQueue stop]; - if (_renderingBackend == RENDER_AVSB) { - [_displayLink invalidate]; - } - - @synchronized(self) { - if (_decompressionSession != NULL) { - VTDecompressionSessionInvalidate(_decompressionSession); - CFRelease(_decompressionSession); - _decompressionSession = nil; +- (void)cleanup{ + dispatch_async(dispatch_get_main_queue(), ^{ + [self->_frameQueue stop]; + + if (self->_renderingBackend == RENDER_AVSB) { + [self->_displayLink invalidate]; } - } + @synchronized(self) { + if (self->_decompressionSession != NULL) { + VTDecompressionSessionInvalidate(self->_decompressionSession); + CFRelease(self->_decompressionSession); + self->_decompressionSession = nil; + } + } + }); } #define NALU_START_PREFIX_SIZE 3 diff --git a/VoidLink/ViewControllers/SettingsViewController.m b/VoidLink/ViewControllers/SettingsViewController.m index 09650580..a5ef4417 100644 --- a/VoidLink/ViewControllers/SettingsViewController.m +++ b/VoidLink/ViewControllers/SettingsViewController.m @@ -1689,7 +1689,7 @@ BOOL isCustomResolution(int resolutionSelected) { [_favoriteSettingStackIdentifiers removeAllObjects]; //for(NSInteger i = 0; i < parentStack.arrangedSubviews.count; i++){ for(NSInteger i = 0; i < _parentStack.arrangedSubviews.count; i++){ - [_favoriteSettingStackIdentifiers addObject:_parentStack.arrangedSubviews[i].accessibilityIdentifier]; + if(_parentStack.arrangedSubviews[i].accessibilityIdentifier) [_favoriteSettingStackIdentifiers addObject:_parentStack.arrangedSubviews[i].accessibilityIdentifier]; } } [[NSUserDefaults standardUserDefaults] setObject:_favoriteSettingStackIdentifiers forKey:@"FavoriteSettingStackIdentifiers"];