@ -251,11 +251,12 @@ BOOL CSoundFile::ReadMT2(LPCBYTE lpStream, DWORD dwMemLength)
{
DWORD nTxtLen = dwLen ;
if ( nTxtLen > 32000 ) nTxtLen = 32000 ;
m_lpszSongComments = new char [ nTxtLen ] ; // changed from CHAR
if ( m_lpszSongComments )
{
memcpy ( m_lpszSongComments , lpStream + dwMemPos + 1 , nTxtLen - 1 ) ;
m_lpszSongComments [ nTxtLen - 1 ] = 0 ;
try {
m_lpszSongComments = new char [ nTxtLen ] ; // changed from CHAR
memcpy ( m_lpszSongComments , lpStream + dwMemPos + 1 , nTxtLen - 1 ) ;
m_lpszSongComments [ nTxtLen - 1 ] = 0 ;
}
catch ( std : : bad_alloc & ba ) {
}
}
break ;
@ -402,19 +403,20 @@ BOOL CSoundFile::ReadMT2(LPCBYTE lpStream, DWORD dwMemLength)
INSTRUMENTHEADER * penv = NULL ;
if ( iIns < = m_nInstruments )
{
penv = new INSTRUMENTHEADER ;
Headers [ iIns ] = penv ;
if ( penv )
{
try {
penv = new INSTRUMENTHEADER ;
Headers [ iIns ] = penv ;
memset ( penv , 0 , sizeof ( INSTRUMENTHEADER ) ) ;
memcpy ( penv - > name , pmi - > szName , 32 ) ;
penv - > nGlobalVol = 64 ;
penv - > nPan = 128 ;
for ( UINT i = 0 ; i < NOTE_MAX ; i + + )
for ( UINT i = 0 ; i < NOTE_MAX ; i + + )
{
penv - > NoteMap [ i ] = i + 1 ;
penv - > NoteMap [ i ] = i + 1 ;
}
}
catch ( std : : bad_alloc & ba ) {
}
}
# ifdef MT2DEBUG
if ( iIns < = pfh - > wInstruments ) Log ( " Instrument #%d at offset %04X: %d bytes \n " , iIns , dwMemPos , pmi - > dwDataLen ) ;