diff options
author | Aidan MacDonald <amachronic@protonmail.com> | 2023-01-21 21:05:02 +0000 |
---|---|---|
committer | Aidan MacDonald <amachronic@protonmail.com> | 2023-01-23 12:24:12 +0000 |
commit | ce52d0c870f715ee979a1bf5e51857c200543d9d (patch) | |
tree | fe09ebde934dc6072a2b6cfb0a35141f59d4839f | |
parent | 2a40d420120c051b9ee79a0086059b5f2059a013 (diff) | |
download | rockbox-ce52d0c870.tar.gz rockbox-ce52d0c870.zip |
playlist: Fix mutex initialization
This is a one-time thing; make sure it doesn't happen more than once.
Change-Id: Ic42f48e5714dff2906c252ecd091989d2d6e5a86
-rw-r--r-- | apps/playlist.c | 12 | ||||
-rw-r--r-- | apps/playlist_viewer.c | 9 |
2 files changed, 12 insertions, 9 deletions
diff --git a/apps/playlist.c b/apps/playlist.c index 48933664a0..7b7b91c22f 100644 --- a/apps/playlist.c +++ b/apps/playlist.c @@ -592,13 +592,6 @@ static void empty_playlist_unlocked(struct playlist_info* playlist, bool resume) } } -/* initializes the mutex for a new playlist and sets it as empty */ -static void initalize_new_playlist(struct playlist_info* playlist, bool resume) -{ - mutex_init(&(playlist->mutex)); - empty_playlist_unlocked(playlist, resume); -} - /* * Returns absolute path of track * @@ -668,7 +661,7 @@ static void new_playlist_unlocked(struct playlist_info* playlist, const char *fileused = file; const char *dirused = dir; - initalize_new_playlist(playlist, false); + empty_playlist_unlocked(playlist, false); if (!fileused) { @@ -2079,6 +2072,7 @@ void playlist_init(void) { int handle; struct playlist_info* playlist = ¤t_playlist; + mutex_init(&playlist->mutex); strmemccpy(playlist->control_filename, PLAYLIST_CONTROL_FILE, sizeof(playlist->control_filename)); @@ -2089,7 +2083,7 @@ void playlist_init(void) handle = core_alloc_ex(playlist->max_playlist_size * sizeof(*playlist->indices), &ops); playlist->indices = core_get_data(handle); - initalize_new_playlist(playlist, true); + empty_playlist_unlocked(playlist, true); #ifdef HAVE_DIRCACHE playlist->dcfrefs_handle = core_alloc( diff --git a/apps/playlist_viewer.c b/apps/playlist_viewer.c index 4e3d8bade2..4328a6de1d 100644 --- a/apps/playlist_viewer.c +++ b/apps/playlist_viewer.c @@ -119,6 +119,7 @@ static struct playlist_viewer viewer; /* Used when viewing playlists on disk */ static struct playlist_info temp_playlist; +static bool temp_playlist_init = false; static bool dirty = false; @@ -365,6 +366,14 @@ static bool playlist_viewer_init(struct playlist_viewer * viewer, char *index_buffer = NULL; ssize_t index_buffer_size = 0; + /* Initialize temp playlist + * TODO - move this to playlist.c */ + if (!temp_playlist_init) + { + mutex_init(&temp_playlist.mutex); + temp_playlist_init = true; + } + viewer->playlist = &temp_playlist; /* Separate directory from filename */ |