From fe14016d0a72d0045674574acdb7a6a0e185a913 Mon Sep 17 00:00:00 2001
From: Claudio Cambra <developer@claudiocambra.com>
Date: Mon, 9 Sep 2024 01:07:50 +0800
Subject: [PATCH] macosx: Do not keep around data sources that are not being
 used in video view controller

Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
---
 .../library/video-library/VLCLibraryVideoViewController.h   | 4 ++--
 .../library/video-library/VLCLibraryVideoViewController.m   | 6 ++++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/modules/gui/macosx/library/video-library/VLCLibraryVideoViewController.h b/modules/gui/macosx/library/video-library/VLCLibraryVideoViewController.h
index 024bb9d02b00..6a6162eaac3e 100644
--- a/modules/gui/macosx/library/video-library/VLCLibraryVideoViewController.h
+++ b/modules/gui/macosx/library/video-library/VLCLibraryVideoViewController.h
@@ -48,8 +48,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 @property (readonly) VLCLoadingOverlayView *loadingOverlayView;
 
-@property (readonly) VLCLibraryVideoDataSource *libraryVideoDataSource;
-@property (readonly) VLCLibraryShowsDataSource *libraryShowsDataSource;
+@property (readonly, nullable) VLCLibraryVideoDataSource *libraryVideoDataSource;
+@property (readonly, nullable) VLCLibraryShowsDataSource *libraryShowsDataSource;
 
 - (instancetype)initWithLibraryWindow:(VLCLibraryWindow *)libraryWindow;
 - (void)presentVideoView;
diff --git a/modules/gui/macosx/library/video-library/VLCLibraryVideoViewController.m b/modules/gui/macosx/library/video-library/VLCLibraryVideoViewController.m
index e9178a157fd1..342b2616a7b7 100644
--- a/modules/gui/macosx/library/video-library/VLCLibraryVideoViewController.m
+++ b/modules/gui/macosx/library/video-library/VLCLibraryVideoViewController.m
@@ -84,8 +84,6 @@
 
         [self setupPropertiesFromLibraryWindow:libraryWindow];
         [self setupTableViews];
-        [self setupVideoDataSource];
-        [self setupShowsDataSource];
         [self setupCollectionView];
         [self setupVideoPlaceholderView];
         [self setupVideoLibraryViews];
@@ -295,6 +293,8 @@
 
 - (void)updatePresentedVideoLibraryView
 {
+    _libraryShowsDataSource = nil;
+    [self setupVideoDataSource];
     self.videoLibraryCollectionView.dataSource = self.libraryVideoDataSource;
 
     self.videoLibraryGroupsTableView.dataSource = self.libraryVideoDataSource;
@@ -320,6 +320,8 @@
 
 - (void)updatePresentedShowsLibraryView
 {
+    _libraryVideoDataSource = nil;
+    [self setupShowsDataSource];
     self.videoLibraryCollectionView.dataSource = self.libraryShowsDataSource;
 
     self.videoLibraryGroupsTableView.dataSource = self.libraryShowsDataSource;
-- 
GitLab