Felix Paul Kühne pushed to branch master at VideoLAN / VLC
Commits: 2476eb53 by Claudio Cambra at 2026-06-07T18:42:57+02:00 macosx: Clear out old observers before creating new ones Avoids crash when attempting to re-create observers for same paths Can happen when reconfiguring media folders Signed-off-by: Claudio Cambra <[email protected]> - - - - - 1 changed file: - modules/gui/macosx/library/VLCLibraryModel.m Changes: ===================================== modules/gui/macosx/library/VLCLibraryModel.m ===================================== @@ -910,25 +910,33 @@ static void libraryCallback(void *p_data, const vlc_ml_event_t *p_event) NSMutableArray * const mutableArray = [[NSMutableArray alloc] initWithCapacity:pp_entrypoints->i_nb_items]; - NSMutableArray * const mutableObservers = - [[NSMutableArray alloc] initWithCapacity:pp_entrypoints->i_nb_items]; for (size_t x = 0; x < pp_entrypoints->i_nb_items; x++) { VLCMediaLibraryEntryPoint * const entryPoint = [[VLCMediaLibraryEntryPoint alloc] initWithEntryPoint:&pp_entrypoints->p_items[x]]; if (entryPoint) { [mutableArray addObject:entryPoint]; - - NSURL * const url = [NSURL URLWithString:entryPoint.MRL]; - VLCMediaLibraryFolderObserver * const observer = - [[VLCMediaLibraryFolderObserver alloc] initWithURL:url]; - [mutableObservers addObject:observer]; } } vlc_ml_folder_list_release(pp_entrypoints); dispatch_async(dispatch_get_main_queue(), ^{ + // Stop old observers before creating new ones to avoid duplicate + // FSEvent streams for the same paths + self.folderObservers = nil; + + NSMutableArray * const mutableObservers = + [[NSMutableArray alloc] initWithCapacity:mutableArray.count]; + for (VLCMediaLibraryEntryPoint * const entryPoint in mutableArray) { + NSURL * const url = [NSURL URLWithString:entryPoint.MRL]; + VLCMediaLibraryFolderObserver * const observer = + [[VLCMediaLibraryFolderObserver alloc] initWithURL:url]; + if (observer) { + [mutableObservers addObject:observer]; + } + } + self.cachedListOfMonitoredFolders = mutableArray.copy; self.folderObservers = mutableObservers.copy; [self.changeDelegate notifyChange:VLCLibraryModelListOfMonitoredFoldersUpdated withObject:self]; View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/2476eb53e76d650fbd85fc79f301637a600353c3 -- View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/2476eb53e76d650fbd85fc79f301637a600353c3 You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help
_______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
