Fix undefined behaviour due to shifting signed in snd_mem.c

This commit is contained in:
Dominic Fandrey 2016-11-26 10:15:02 +01:00 committed by Zack Middleton
parent 4ea0eebfe5
commit a494edeb94

View file

@ -141,7 +141,7 @@ static int ResampleSfx( sfx_t *sfx, int channels, int inrate, int inwidth, int s
if( inwidth == 2 ) { if( inwidth == 2 ) {
sample = ( ((short *)data)[srcsample+j] ); sample = ( ((short *)data)[srcsample+j] );
} else { } else {
sample = (int)( (unsigned char)(data[srcsample+j]) - 128) << 8; sample = (unsigned int)( (unsigned char)(data[srcsample+j]) - 128) << 8;
} }
part = (i*channels+j)&(SND_CHUNK_SIZE-1); part = (i*channels+j)&(SND_CHUNK_SIZE-1);
if (part == 0) { if (part == 0) {