diff options
| -rw-r--r-- | src/player.c | 10 | 
1 files changed, 6 insertions, 4 deletions
| diff --git a/src/player.c b/src/player.c index afd6eb4..16c94dc 100644 --- a/src/player.c +++ b/src/player.c @@ -488,9 +488,9 @@ void *BarPlayerThread (void *data) {  		#endif /* ENABLE_MAD */  		default: -			/* FIXME: leaks memory */  			BarUiMsg (player->settings, MSG_ERR, "Unsupported audio format!\n"); -			return PLAYER_RET_OK; +			ret = (void *) PLAYER_RET_ERR; +			goto cleanup;  			break;  	} @@ -522,7 +522,8 @@ void *BarPlayerThread (void *data) {  		#endif /* ENABLE_MAD */  		default: -			/* this should never happen: thread is aborted above */ +			/* this should never happen */ +			assert (0);  			break;  	} @@ -538,7 +539,8 @@ void *BarPlayerThread (void *data) {  		ret = (void *) PLAYER_RET_ERR;  	} -	ao_close(player->audioOutDevice); +cleanup: +	ao_close (player->audioOutDevice);  	WaitressFree (&player->waith);  	free (player->buffer); | 
