aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/midi/sf2load.c
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2014-02-15 02:52:29 +0100
committerSven Gothel <[email protected]>2014-02-15 02:52:29 +0100
commit167b92184dfbe512d5095d017e6057280f5e9c8b (patch)
treec0957de971c402fd2b72887374a7c821ae40a219 /Alc/midi/sf2load.c
parent4b0fce521472bc30a539a252f83289dd1c32cb9e (diff)
parent29e0af5ef052a3602f9b7935d6002c6d2ae5e8cb (diff)
Merge branch 'UPSTREAM' into UPSTREAM_MERGE
Diffstat (limited to 'Alc/midi/sf2load.c')
-rw-r--r--Alc/midi/sf2load.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/Alc/midi/sf2load.c b/Alc/midi/sf2load.c
index 5bba345f..169a5189 100644
--- a/Alc/midi/sf2load.c
+++ b/Alc/midi/sf2load.c
@@ -1192,15 +1192,18 @@ ALboolean loadSf2(Reader *stream, ALsoundfont *soundfont, ALCcontext *context)
READ(stream, ptr, smpl.mSize);
else
{
- while(smpl.mSize > 0)
+ ALuint total = 0;
+ while(total < smpl.mSize)
{
ALbyte buf[4096];
- ALuint todo = minu(smpl.mSize, sizeof(buf));
+ ALuint todo = minu(smpl.mSize-total, sizeof(buf));
ALuint i;
READ(stream, buf, todo);
for(i = 0;i < todo;i++)
- ptr[i] = buf[i^1];
+ ptr[total+i] = buf[i^1];
+
+ total += todo;
}
}
list.mSize -= smpl.mSize;