From 4942312a44b1fcbb29130e80bfebd6069235cc70 Mon Sep 17 00:00:00 2001 From: Nicolas Pennequin Date: Thu, 11 Oct 2007 02:22:17 +0200 Subject: [PATCH] Properly clear track info --- apps/playback.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/apps/playback.c b/apps/playback.c index e054d6969..62798a798 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -385,25 +385,24 @@ unsigned char *getptr(int handle_id) return ptr; } -void close_track_handles(struct track_info *track) +void clear_track_info(struct track_info *track) { if (!track) return; if (track->codec_hid > 0) { bufclose(track->codec_hid); - track->codec_hid = 0; } if (track->id3_hid > 0) { bufclose(track->id3_hid); - track->id3_hid = 0; } if (track->audio_hid > 0) { bufclose(track->audio_hid); - track->audio_hid = 0; } + + memset(track, 0, sizeof(struct track_info)); } /* --- External interfaces --- */ @@ -2406,15 +2405,13 @@ static void audio_clear_track_entries(bool clear_unbuffered) if (track_unbuffer_callback) track_unbuffer_callback(bufgetid3(tracks[last_idx].id3_hid), false); - close_track_handles(&tracks[last_idx]); - memset(&tracks[last_idx], 0, sizeof(struct track_info)); + clear_track_info(&tracks[last_idx]); } last_idx = cur_idx; } else if (clear_unbuffered) { - close_track_handles(&tracks[cur_idx]); - memset(&tracks[cur_idx], 0, sizeof(struct track_info)); + clear_track_info(&tracks[cur_idx]); } } @@ -2425,7 +2422,7 @@ static void audio_clear_track_entries(bool clear_unbuffered) { if (track_unbuffer_callback) track_unbuffer_callback(bufgetid3(tracks[last_idx].id3_hid), true); - memset(&tracks[last_idx], 0, sizeof(struct track_info)); + clear_track_info(&tracks[last_idx]); } } @@ -2437,7 +2434,7 @@ static void audio_release_tracks(void) while (1) { - close_track_handles(&tracks[cur_idx]); + clear_track_info(&tracks[cur_idx]); cur_idx++; cur_idx &= MAX_TRACK_MASK; @@ -3206,7 +3203,7 @@ static int audio_check_new_track(void) for (i = 0; i < ci.new_track; i++) { idx = (track_ridx + i) & MAX_TRACK_MASK; - close_track_handles(&tracks[idx]); + clear_track_info(&tracks[idx]); } /* Move to the new track */ -- 2.11.4.GIT