pull/25/merge
Pavel Gushchin 8 years ago committed by GitHub
commit bfe6d9cd34
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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

@ -13,6 +13,8 @@
#ifndef __SNDFILE_H #ifndef __SNDFILE_H
#define __SNDFILE_H #define __SNDFILE_H
#include <new>
#ifdef UNDER_CE #ifdef UNDER_CE
int _strnicmp(const char *str1,const char *str2, int n); int _strnicmp(const char *str1,const char *str2, int n);
#endif #endif

Loading…
Cancel
Save