aboutsummaryrefslogtreecommitdiffstats
path: root/src/player_error.c
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2008-10-02 03:24:21 -0700
committerEric Wong <normalperson@yhbt.net>2008-10-02 03:24:21 -0700
commitbf402578ab5bd9bc35bb5539d381d5612d19d40b (patch)
tree9dfa45ebb1cea9e96b9b598bb5e89eeaa24a0ae0 /src/player_error.c
parentfcbcdd9869e3147fe4a30ba808af294f680c9373 (diff)
downloadmpd-bf402578ab5bd9bc35bb5539d381d5612d19d40b.tar.gz
mpd-bf402578ab5bd9bc35bb5539d381d5612d19d40b.tar.xz
mpd-bf402578ab5bd9bc35bb5539d381d5612d19d40b.zip
Revert "Start using song pointers in core data structures"
This actually opened us up to making lock dependencies more difficult than they needed to be now that we have threaded updates. We would always use the memory anyways, just in the stack instead of bss.
Diffstat (limited to '')
-rw-r--r--src/player_error.c36
1 files changed, 19 insertions, 17 deletions
diff --git a/src/player_error.c b/src/player_error.c
index 4c7f7b9de..38e76e2c4 100644
--- a/src/player_error.c
+++ b/src/player_error.c
@@ -4,50 +4,52 @@
#include "path.h"
enum player_error player_errno;
-Song *player_errsong;
+static char errsong_url[MPD_PATH_MAX];
void player_clearerror(void)
{
player_errno = PLAYER_ERROR_NONE;
- player_errsong = NULL;
+ *errsong_url = '\0';
}
-void player_seterror(enum player_error err, Song *song)
+void player_seterror(enum player_error err, const char *url)
{
if (player_errno)
ERROR("Clobbering existing error: %s\n", player_strerror());
player_errno = err;
- player_errsong = song;
+ pathcpy_trunc(errsong_url, url);
}
const char *player_strerror(void)
{
/* static OK here, only one user in main task */
static char error[MPD_PATH_MAX + 64]; /* still too much */
- char path_max_tmp[MPD_PATH_MAX];
- *error = '\0'; /* likely */
+ const char *ret = NULL;
switch (player_errno) {
- case PLAYER_ERROR_NONE: break;
+ case PLAYER_ERROR_NONE:
+ ret = "";
+ break;
case PLAYER_ERROR_FILE:
- snprintf(error, sizeof(error), "problems decoding \"%s\"",
- get_song_url(path_max_tmp, player_errsong));
+ snprintf(error, sizeof(error),
+ "problems decoding \"%s\"", errsong_url);
break;
case PLAYER_ERROR_AUDIO:
- strcpy(error, "problems opening audio device");
+ ret = "problems opening audio device";
break;
case PLAYER_ERROR_SYSTEM:
- strcpy(error, "system error occured");
+ /* DONTFIX: misspelling "occurred" here is client-visible */
+ ret = "system error occured";
break;
case PLAYER_ERROR_UNKTYPE:
- snprintf(error, sizeof(error), "file type of \"%s\" is unknown",
- get_song_url(path_max_tmp, player_errsong));
- case PLAYER_ERROR_FILENOTFOUND:
snprintf(error, sizeof(error),
- "file \"%s\" does not exist or is inaccessible",
- get_song_url(path_max_tmp, player_errsong));
+ "file type of \"%s\" is unknown", errsong_url);
break;
+ case PLAYER_ERROR_FILENOTFOUND:
+ snprintf(error, sizeof(error),
+ "file \"%s\" does not exist or is inaccessible",
+ errsong_url);
}
- return *error ? error : NULL;
+ return ret ? ret : error;
}