summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2005-08-30 22:50:56 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2005-08-30 22:50:56 +0000
commite54aa2ab934a6f21c864b1cfa820a7a4b70078fb (patch)
tree6b3bc9e88d6219a6a0baa7b72c6ca7dd82a7c237 /firmware
parentdfb001560a4e237a774cd5ef55cba2681bb409d5 (diff)
downloadrockbox-e54aa2ab934a6f21c864b1cfa820a7a4b70078fb.tar.gz
rockbox-e54aa2ab934a6f21c864b1cfa820a7a4b70078fb.zip
Archos: Even more NULL pointer accesses removed
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7433 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/mpeg.c14
1 files 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)