diff options
| author | Nils Wallménius <nils@rockbox.org> | 2007-10-23 15:00:45 +0000 |
|---|---|---|
| committer | Nils Wallménius <nils@rockbox.org> | 2007-10-23 15:00:45 +0000 |
| commit | a3117328e943c23cf542059386e2ce53a0e796fe (patch) | |
| tree | e658a13829686a1b746967dd8e05ed0eeff08c13 /apps/plugins | |
| parent | eed41ff985ba92181a00e6a060dc460828feb7dc (diff) | |
| download | rockbox-a3117328e943c23cf542059386e2ce53a0e796fe.zip rockbox-a3117328e943c23cf542059386e2ce53a0e796fe.tar.gz rockbox-a3117328e943c23cf542059386e2ce53a0e796fe.tar.bz2 rockbox-a3117328e943c23cf542059386e2ce53a0e796fe.tar.xz | |
Fix vroken logic that _could_ lead to memory corruption though it was very unlikely
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15281 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
| -rw-r--r-- | apps/plugins/midi/midiplay.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c index 325d90c..974dc99 100644 --- a/apps/plugins/midi/midiplay.c +++ b/apps/plugins/midi/midiplay.c @@ -89,7 +89,7 @@ PLUGIN_IRAM_DECLARE struct MIDIfile * mf IBSS_ATTR; -int numberOfSamples IBSS_ATTR; +int numberOfSamples IBSS_ATTR; /* the number of samples in the current tick */ long bpm IBSS_ATTR; int32_t gmbuf[BUF_SIZE*NBUF]; @@ -150,7 +150,7 @@ bool lastswap=1; static inline void synthbuf(void) { int32_t *outptr; - int i; + int i=BUF_SIZE; #ifndef SYNC if(lastswap==swap) return; @@ -162,7 +162,7 @@ static inline void synthbuf(void) #endif /* synth samples for as many whole ticks as we can fit in the buffer */ - for(i=0; i < BUF_SIZE/numberOfSamples; i++) + for(; i >= numberOfSamples; i -= numberOfSamples) { synthSamples((int32_t*)outptr, numberOfSamples); outptr += numberOfSamples; @@ -171,7 +171,7 @@ static inline void synthbuf(void) } /* how many samples did we write to the buffer? */ - samples_in_buf = BUF_SIZE-(BUF_SIZE%numberOfSamples); + samples_in_buf = BUF_SIZE-i; } |