From ce52d0c870f715ee979a1bf5e51857c200543d9d Mon Sep 17 00:00:00 2001 From: Aidan MacDonald Date: Sat, 21 Jan 2023 21:05:02 +0000 Subject: [PATCH] playlist: Fix mutex initialization This is a one-time thing; make sure it doesn't happen more than once. Change-Id: Ic42f48e5714dff2906c252ecd091989d2d6e5a86 --- apps/playlist.c | 12 +++--------- 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 */