From ea1bcf4094f483db2194f06baf6c9639eee0ab6b Mon Sep 17 00:00:00 2001
From: Claudio Cambra <developer@claudiocambra.com>
Date: Sun, 8 Sep 2024 20:10:41 +0800
Subject: [PATCH] macosx: Mark properties holding views in library data sources
 as weak

These views are always held by parent view controllers

Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
---
 .../library/VLCLibraryAbstractGroupingDataSource.h |  6 +++---
 ...VLCLibraryMasterDetailViewTableViewDataSource.h |  4 ++--
 .../audio-library/VLCLibraryAudioDataSource.h      | 12 ++++++------
 ...LCLibraryHomeViewVideoContainerViewDataSource.h |  4 ++--
 .../media-source/VLCMediaSourceBaseDataSource.h    | 14 +++++++-------
 .../media-source/VLCMediaSourceDataSource.h        |  6 +++---
 .../VLCLibraryPlaylistDataSource.h                 |  4 ++--
 .../video-library/VLCLibraryVideoDataSource.h      |  6 +++---
 8 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/modules/gui/macosx/library/VLCLibraryAbstractGroupingDataSource.h b/modules/gui/macosx/library/VLCLibraryAbstractGroupingDataSource.h
index e14c6274f19d..9c9e73d51459 100644
--- a/modules/gui/macosx/library/VLCLibraryAbstractGroupingDataSource.h
+++ b/modules/gui/macosx/library/VLCLibraryAbstractGroupingDataSource.h
@@ -33,9 +33,9 @@ NS_ASSUME_NONNULL_BEGIN
 
 @property (readonly) NSArray<id<VLCMediaLibraryItemProtocol>> *backingArray;
 
-@property (readwrite) NSCollectionView *collectionView;
-@property (readwrite) NSTableView *masterTableView;
-@property (readwrite) NSTableView *detailTableView;
+@property (readwrite, weak) NSCollectionView *collectionView;
+@property (readwrite, weak) NSTableView *masterTableView;
+@property (readwrite, weak) NSTableView *detailTableView;
 
 - (void)reloadData;
 
diff --git a/modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDataSource.h b/modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDataSource.h
index 779cb7d62e5f..88d7c3eb8a5c 100644
--- a/modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDataSource.h
+++ b/modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDataSource.h
@@ -28,8 +28,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 @protocol VLCLibraryMasterDetailViewTableViewDataSource <VLCLibraryTableViewDataSource>
 
-@property (readwrite) NSTableView *masterTableView;
-@property (readwrite) NSTableView *detailTableView;
+@property (readwrite, weak) NSTableView *masterTableView;
+@property (readwrite, weak) NSTableView *detailTableView;
 
 @end
 
diff --git a/modules/gui/macosx/library/audio-library/VLCLibraryAudioDataSource.h b/modules/gui/macosx/library/audio-library/VLCLibraryAudioDataSource.h
index a9a46b5f0809..0ac4aee35486 100644
--- a/modules/gui/macosx/library/audio-library/VLCLibraryAudioDataSource.h
+++ b/modules/gui/macosx/library/audio-library/VLCLibraryAudioDataSource.h
@@ -62,15 +62,15 @@ extern NSString * const VLCLibraryAudioDataSourceDisplayedCollectionChangedNotif
 
 @interface VLCLibraryAudioDataSource : NSObject <VLCLibraryTableViewDataSource, VLCLibraryCollectionViewDataSource, iCarouselDataSource>
 
-@property (readwrite, assign) VLCLibraryAudioGroupDataSource *audioGroupDataSource;
-@property (readwrite, assign) NSTableView *collectionSelectionTableView;
-@property (readwrite, assign) NSTableView *songsTableView;
-@property (readwrite, assign) NSCollectionView *collectionView;
-@property (readwrite, assign) iCarousel *carouselView;
-@property (readwrite, assign) NSTableView *gridModeListTableView;
 @property (readwrite, weak) VLCLibraryModel *libraryModel;
+@property (readwrite, weak) NSTableView *collectionSelectionTableView;
+@property (readwrite, weak) NSTableView *songsTableView;
+@property (readwrite, weak) NSCollectionView *collectionView;
+@property (readwrite, weak) iCarousel *carouselView;
+@property (readwrite, weak) NSTableView *gridModeListTableView;
 
 @property (nonatomic, readwrite, assign) VLCAudioLibrarySegment audioLibrarySegment;
+@property (readwrite, strong) VLCLibraryAudioGroupDataSource *audioGroupDataSource;
 
 @property (readonly) size_t collectionToDisplayCount;
 @property (readonly) NSInteger displayedCollectionCount;
diff --git a/modules/gui/macosx/library/home-library/VLCLibraryHomeViewVideoContainerViewDataSource.h b/modules/gui/macosx/library/home-library/VLCLibraryHomeViewVideoContainerViewDataSource.h
index ed9699a3939c..634b76c5a2b2 100644
--- a/modules/gui/macosx/library/home-library/VLCLibraryHomeViewVideoContainerViewDataSource.h
+++ b/modules/gui/macosx/library/home-library/VLCLibraryHomeViewVideoContainerViewDataSource.h
@@ -34,8 +34,8 @@ extern NSString * const VLCLibraryVideoCollectionViewDataSourceDisplayedCollecti
 
 @interface VLCLibraryHomeViewVideoContainerViewDataSource : NSObject <VLCLibraryCollectionViewDataSource, iCarouselDataSource>
 
-@property (readwrite, assign) NSCollectionView *collectionView;
-@property (readwrite, assign) iCarousel *carouselView;
+@property (readwrite, weak) NSCollectionView *collectionView;
+@property (readwrite, weak) iCarousel *carouselView;
 @property (readwrite, assign, nonatomic) VLCLibraryVideoCollectionViewGroupDescriptor *groupDescriptor;
 @property (readwrite, assign) VLCLibraryHomeViewVideoGridContainerView *parentCell;
 
diff --git a/modules/gui/macosx/library/media-source/VLCMediaSourceBaseDataSource.h b/modules/gui/macosx/library/media-source/VLCMediaSourceBaseDataSource.h
index 6d6d61a8c142..cee5c51beb32 100644
--- a/modules/gui/macosx/library/media-source/VLCMediaSourceBaseDataSource.h
+++ b/modules/gui/macosx/library/media-source/VLCMediaSourceBaseDataSource.h
@@ -40,13 +40,13 @@ extern NSString * const VLCMediaSourceBaseDataSourceNodeChanged;
                                                     NSTableViewDelegate,
                                                     NSTableViewDataSource>
 
-@property (readwrite) NSCollectionView *collectionView;
-@property (readwrite) NSScrollView *collectionViewScrollView;
-@property (readwrite) NSTableView *tableView;
-@property (readwrite) NSScrollView *tableViewScrollView;
-@property (readwrite) NSButton *homeButton;
-@property (readwrite) VLCInputNodePathControl *pathControl;
-@property (readwrite) NSVisualEffectView *pathControlVisualEffectView;
+@property (readwrite, weak) NSCollectionView *collectionView;
+@property (readwrite, weak) NSScrollView *collectionViewScrollView;
+@property (readwrite, weak) NSTableView *tableView;
+@property (readwrite, weak) NSScrollView *tableViewScrollView;
+@property (readwrite, weak) NSButton *homeButton;
+@property (readwrite, weak) VLCInputNodePathControl *pathControl;
+@property (readwrite, weak) NSVisualEffectView *pathControlVisualEffectView;
 @property (readwrite, nonatomic) VLCMediaSourceMode mediaSourceMode;
 @property (readwrite, nonatomic) VLCMediaSourceDataSource *childDataSource;
 
diff --git a/modules/gui/macosx/library/media-source/VLCMediaSourceDataSource.h b/modules/gui/macosx/library/media-source/VLCMediaSourceDataSource.h
index 4ab547d79fbe..5147d6e7a5d4 100644
--- a/modules/gui/macosx/library/media-source/VLCMediaSourceDataSource.h
+++ b/modules/gui/macosx/library/media-source/VLCMediaSourceDataSource.h
@@ -39,9 +39,9 @@ extern NSString * const VLCMediaSourceDataSourceNodeChanged;
 
 @property (readwrite, retain) VLCMediaSource *displayedMediaSource;
 @property (readwrite, retain, nonatomic) VLCInputNode *nodeToDisplay;
-@property (readwrite, assign) NSCollectionView *collectionView;
-@property (readwrite, assign) NSTableView *tableView;
-@property (readwrite) VLCInputNodePathControl *pathControl;
+@property (readwrite, weak) NSCollectionView *collectionView;
+@property (readwrite, weak) NSTableView *tableView;
+@property (readwrite, weak) VLCInputNodePathControl *pathControl;
 
 - (void)setupViews;
 - (VLCInputItem*)mediaSourceInputItemAtRow:(NSInteger)tableViewRow;
diff --git a/modules/gui/macosx/library/playlist-library/VLCLibraryPlaylistDataSource.h b/modules/gui/macosx/library/playlist-library/VLCLibraryPlaylistDataSource.h
index 8bc7ebe9828d..42df4fe3e963 100644
--- a/modules/gui/macosx/library/playlist-library/VLCLibraryPlaylistDataSource.h
+++ b/modules/gui/macosx/library/playlist-library/VLCLibraryPlaylistDataSource.h
@@ -33,9 +33,9 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface VLCLibraryPlaylistDataSource : NSObject<VLCLibraryCollectionViewDataSource, VLCLibraryMasterDetailViewTableViewDataSource>
 
-@property (readwrite) NSTableView *masterTableView;
-@property (readwrite) NSTableView *detailTableView;
 @property (readonly, weak) VLCLibraryModel *libraryModel;
+@property (readwrite, weak) NSTableView *masterTableView;
+@property (readwrite, weak) NSTableView *detailTableView;
 @property (readwrite, nonatomic) NSArray<NSCollectionView *> *collectionViews;
 @property (readwrite, nonatomic) vlc_ml_playlist_type_t playlistType;
 
diff --git a/modules/gui/macosx/library/video-library/VLCLibraryVideoDataSource.h b/modules/gui/macosx/library/video-library/VLCLibraryVideoDataSource.h
index cbf995b54efb..4f5508c4d0d6 100644
--- a/modules/gui/macosx/library/video-library/VLCLibraryVideoDataSource.h
+++ b/modules/gui/macosx/library/video-library/VLCLibraryVideoDataSource.h
@@ -33,10 +33,10 @@ NS_ASSUME_NONNULL_BEGIN
 
 extern NSString * const VLCLibraryVideoDataSourceDisplayedCollectionChangedNotification;
 
-@property (readwrite, assign) NSCollectionView *collectionView;
-@property (readwrite) NSTableView *masterTableView;
-@property (readwrite) NSTableView *detailTableView;
 @property (readwrite, weak) VLCLibraryModel *libraryModel;
+@property (readwrite, weak) NSCollectionView *collectionView;
+@property (readwrite, weak) NSTableView *masterTableView;
+@property (readwrite, weak) NSTableView *detailTableView;
 
 - (void)reloadData;
 
-- 
GitLab