From e54aa2ab934a6f21c864b1cfa820a7a4b70078fb Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Tue, 30 Aug 2005 22:50:56 +0000 Subject: [PATCH] Archos: Even more NULL pointer accesses removed git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7433 a1c6a512-1295-4272-9138-f99709370657 --- firmware/mpeg.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/firmware/mpeg.c b/firmware/mpeg.c index 221c403b49..933d02ce8a 100644 --- a/firmware/mpeg.c +++ b/firmware/mpeg.c @@ -777,9 +777,13 @@ void rec_tick(void) void playback_tick(void) { struct trackdata *ptd = get_trackdata(0); - ptd->id3.elapsed += (current_tick - last_dma_tick) * 1000 / HZ; - last_dma_tick = current_tick; - audio_dispatch_event(AUDIO_EVENT_POS_REPORT, (unsigned long)ptd->id3.elapsed); + if(ptd) + { + ptd->id3.elapsed += (current_tick - last_dma_tick) * 1000 / HZ; + last_dma_tick = current_tick; + audio_dispatch_event(AUDIO_EVENT_POS_REPORT, + (unsigned long)ptd->id3.elapsed); + } } static void reset_mp3_buffer(void) @@ -849,7 +853,9 @@ static void transfer_end(unsigned char** ppbuf, int* psize) *psize = last_dma_chunk_size & 0xffff; *ppbuf = audiobuf + audiobuf_read; - get_trackdata(0)->id3.offset += last_dma_chunk_size; + track = get_trackdata(0); + if(track) + track->id3.offset += last_dma_chunk_size; /* Update the watermark debug level */ if(unplayed_space_left < lowest_watermark_level)