load_mdl.cpp   load_mdl.cpp 
skipping to change at line 178 skipping to change at line 178
if (row >= nRows) break; if (row >= nRows) break;
} }
} }
} }
BOOL CSoundFile::ReadMDL(const BYTE *lpStream, DWORD dwMemLength) BOOL CSoundFile::ReadMDL(const BYTE *lpStream, DWORD dwMemLength)
//--------------------------------------------------------------- //---------------------------------------------------------------
{ {
DWORD dwMemPos, dwPos, blocklen, dwTrackPos; DWORD dwMemPos, dwPos, blocklen, dwTrackPos;
const MDLSONGHEADER *pmsh = (const MDLSONGHEADER *)lpStream; const MDLSONGHEADER *pmsh = (const MDLSONGHEADER *)lpStream;
MDLINFOBLOCK *pmib; const MDLINFOBLOCK *pmib;
MDLPATTERNDATA *pmpd; const MDLPATTERNDATA *pmpd;
UINT i,j, norders = 0, npatterns = 0, ntracks = 0; UINT i,j, norders = 0, npatterns = 0, ntracks = 0;
UINT ninstruments = 0, nsamples = 0; UINT ninstruments = 0, nsamples = 0;
WORD block; WORD block;
WORD patterntracks[MAX_PATTERNS*32]; WORD patterntracks[MAX_PATTERNS*32];
BYTE smpinfo[MAX_SAMPLES]; BYTE smpinfo[MAX_SAMPLES];
BYTE insvolenv[MAX_INSTRUMENTS]; BYTE insvolenv[MAX_INSTRUMENTS];
BYTE inspanenv[MAX_INSTRUMENTS]; BYTE inspanenv[MAX_INSTRUMENTS];
LPCBYTE pvolenv, ppanenv, ppitchenv; LPCBYTE pvolenv, ppanenv, ppitchenv;
UINT nvolenv, npanenv, npitchenv; UINT nvolenv, npanenv, npitchenv;
skipping to change at line 392 skipping to change at line 392
{ {
MODINSTRUMENT *pins = &Ins[i]; MODINSTRUMENT *pins = &Ins[i];
UINT flags = (pins->uFlags & CHN_16BIT) ? RS _PCM16S : RS_PCM8S; UINT flags = (pins->uFlags & CHN_16BIT) ? RS _PCM16S : RS_PCM8S;
if (!smpinfo[i]) if (!smpinfo[i])
{ {
dwPos += ReadSample(pins, flags, (LP STR)(lpStream+dwPos), dwMemLength - dwPos); dwPos += ReadSample(pins, flags, (LP STR)(lpStream+dwPos), dwMemLength - dwPos);
} else } else
{ {
DWORD dwLen = *((DWORD *)(lpStream+d wPos)); DWORD dwLen = *((DWORD *)(lpStream+d wPos));
dwPos += 4; dwPos += 4;
if ((dwPos+dwLen <= dwMemLength) && (dwLen > 4)) if ((dwLen < dwMemLength) && (dwLen <= dwMemLength - dwPos) && (dwLen > 4))
{ {
flags = (pins->uFlags & CHN_ 16BIT) ? RS_MDL16 : RS_MDL8; flags = (pins->uFlags & CHN_ 16BIT) ? RS_MDL16 : RS_MDL8;
ReadSample(pins, flags, (LPS TR)(lpStream+dwPos), dwLen); ReadSample(pins, flags, (LPS TR)(lpStream+dwPos), dwLen);
} }
dwPos += dwLen; dwPos += dwLen;
} }
} }
break; break;
} }
dwMemPos += blocklen; dwMemPos += blocklen;
 End of changes. 2 change blocks. 
3 lines changed or deleted 3 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/