Skip to content

Commit 6785b02

Browse files
medialib: fix regression, tests and cleanup on quit
1 parent dbe972b commit 6785b02

File tree

4 files changed

+9
-9
lines changed

4 files changed

+9
-9
lines changed

plugins/cocoaui/AppDelegate.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,7 @@ - (void)applicationWillTerminate:(NSNotification *)notification {
284284
[self.mainWindow.window close];
285285
self.mainWindow = nil;
286286
[TrackPropertiesManager deinitializeSharedInstance];
287+
[self.mediaLibraryManager cleanup];
287288
self.mediaLibraryManager = nil;
288289

289290
self.designModeState = nil;

plugins/cocoaui/MediaLibrary/MediaLibraryManager.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ NS_ASSUME_NONNULL_BEGIN
1919
@property (nonatomic,readonly) ddb_mediasource_source_t *source;
2020
@property (nonatomic,readonly) scriptableModel_t *model;
2121

22+
- (void)cleanup;
23+
2224
@end
2325

2426
NS_ASSUME_NONNULL_END

plugins/cocoaui/MediaLibrary/MediaLibraryManager.m

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,11 @@ - (instancetype)init
3939
return self;
4040
}
4141

42-
- (void)dealloc
43-
{
42+
- (void)dealloc {
43+
[self cleanup];
44+
}
45+
46+
- (void)cleanup {
4447
scriptableModelFree(_model);
4548
if (_source) {
4649
_medialibPlugin->free_source(_source);

plugins/medialib/medialibsource.c

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ _ml_load_playlist (medialib_source_t *source, const char *plpath) {
6161

6262
gettimeofday (&tm1, NULL);
6363
if (!source->disable_file_operations) {
64-
deadbeef->plt_load2 (-1, plt, NULL, plpath, &source->scanner_terminate, NULL, NULL);
64+
deadbeef->plt_load2 (-1, plt, NULL, plpath, &source->deleting_source, NULL, NULL);
6565
}
6666
gettimeofday (&tm2, NULL);
6767
long ms = (tm2.tv_sec * 1000 + tm2.tv_usec / 1000) - (tm1.tv_sec * 1000 + tm1.tv_usec / 1000);
@@ -84,16 +84,10 @@ _ml_load_playlist (medialib_source_t *source, const char *plpath) {
8484
ml_scanner_configuration_t conf;
8585
conf.medialib_paths = _ml_source_get_music_paths (source, &conf.medialib_paths_count);
8686

87-
__block int terminated = 0;
8887
dispatch_sync (source->sync_queue, ^{
8988
ml_index (&scanner, &conf, 1);
90-
terminated = source->scanner_terminate;
9189
});
9290

93-
if (terminated) {
94-
return;
95-
}
96-
9791
ml_free_music_paths (conf.medialib_paths, conf.medialib_paths_count);
9892

9993
// re-add all items (indexing may have removed some!)

0 commit comments

Comments
 (0)