|
From: <sag...@us...> - 2013-04-27 13:28:14
|
Revision: 1979
http://sourceforge.net/p/modplug/code/1979
Author: saga-games
Date: 2013-04-27 13:28:06 +0000 (Sat, 27 Apr 2013)
Log Message:
-----------
[Fix] XM order list broke in refactoring commit...
[Ref] Removed unused variant of ModSequence::ReadAsByte
Modified Paths:
--------------
trunk/OpenMPT/soundlib/Load_psm.cpp
trunk/OpenMPT/soundlib/Load_xm.cpp
trunk/OpenMPT/soundlib/ModSequence.cpp
trunk/OpenMPT/soundlib/ModSequence.h
trunk/OpenMPT/soundlib/Snd_defs.h
trunk/OpenMPT/soundlib/Sndfile.cpp
Modified: trunk/OpenMPT/soundlib/Load_psm.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_psm.cpp 2013-04-27 13:22:44 UTC (rev 1978)
+++ trunk/OpenMPT/soundlib/Load_psm.cpp 2013-04-27 13:28:06 UTC (rev 1979)
@@ -1156,7 +1156,6 @@
m_nDefaultSpeed = fileHeader.songSpeed;
m_nDefaultTempo = fileHeader.songTempo;
- MemsetZero(m_szNames);
StringFixer::ReadString<StringFixer::spacePadded>(m_szNames[0], fileHeader.songName);
// Read orders
Modified: trunk/OpenMPT/soundlib/Load_xm.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_xm.cpp 2013-04-27 13:22:44 UTC (rev 1978)
+++ trunk/OpenMPT/soundlib/Load_xm.cpp 2013-04-27 13:28:06 UTC (rev 1979)
@@ -257,8 +257,7 @@
|| fileHeader.channels == 0
|| fileHeader.channels > MAX_BASECHANNELS
|| _strnicmp(fileHeader.signature, "Extended Module: ", 17)
- || !Order.ReadAsByte(file, std::min(ORDERINDEX(fileHeader.orders), MAX_ORDERS))
- || !file.Seek(fileHeader.size + 60))
+ || !file.CanRead(fileHeader.orders))
{
return false;
}
@@ -295,6 +294,9 @@
// set this here already because XMs compressed with BoobieSqueezer will exit the function early
SetModFlag(MSF_COMPATIBLE_PLAY, true);
+ Order.ReadAsByte(file, fileHeader.orders);
+ file.Seek(fileHeader.size + 60);
+
if(fileHeader.version >= 0x0104)
{
ReadXMPatterns(file, fileHeader, *this);
Modified: trunk/OpenMPT/soundlib/ModSequence.cpp
===================================================================
--- trunk/OpenMPT/soundlib/ModSequence.cpp 2013-04-27 13:22:44 UTC (rev 1978)
+++ trunk/OpenMPT/soundlib/ModSequence.cpp 2013-04-27 13:28:06 UTC (rev 1979)
@@ -728,21 +728,6 @@
}
-bool ModSequence::ReadAsByte(const BYTE* pFrom, const int howMany, const int memLength)
-//-------------------------------------------------------------------------------------
-{
- if(howMany < 0 || howMany > memLength) return false;
- if(m_sndFile.GetType() != MOD_TYPE_MPT && howMany > MAX_ORDERS) return false;
-
- if(GetLength() < static_cast<size_t>(howMany))
- resize(ORDERINDEX(howMany));
-
- for(int i = 0; i<howMany; i++, pFrom++)
- (*this)[i] = *pFrom;
- return true;
-}
-
-
bool ModSequence::ReadAsByte(FileReader &file, size_t howMany, size_t readEntries)
//--------------------------------------------------------------------------------
{
@@ -751,17 +736,14 @@
return false;
}
LimitMax(readEntries, howMany);
- if(!(m_sndFile.GetType() & MOD_TYPE_MPT))
- {
- LimitMax(readEntries, MAX_ORDERS);
- }
+ LimitMax(readEntries, ORDERINDEX_MAX);
if(GetLength() < readEntries)
{
- resize(readEntries);
+ resize((ORDERINDEX)readEntries);
}
- for(int i = 0; i < readEntries; i++)
+ for(size_t i = 0; i < readEntries; i++)
{
(*this)[i] = file.ReadUint8();
}
Modified: trunk/OpenMPT/soundlib/ModSequence.h
===================================================================
--- trunk/OpenMPT/soundlib/ModSequence.h 2013-04-27 13:22:44 UTC (rev 1978)
+++ trunk/OpenMPT/soundlib/ModSequence.h 2013-04-27 13:28:06 UTC (rev 1979)
@@ -100,8 +100,7 @@
// Read/write.
size_t WriteAsByte(FILE* f, const uint16 count) const;
- bool ReadAsByte(const BYTE* pFrom, const int howMany, const int memLength);
- bool ReadAsByte(FileReader &file, size_t howMany, size_t readEntries = SIZE_MAX);
+ bool ReadAsByte(FileReader &file, size_t howMany, size_t readEntries = ORDERINDEX_MAX);
template<typename T, size_t arraySize>
bool ReadFromArray(const T (&orders)[arraySize], size_t howMany = arraySize);
Modified: trunk/OpenMPT/soundlib/Snd_defs.h
===================================================================
--- trunk/OpenMPT/soundlib/Snd_defs.h 2013-04-27 13:22:44 UTC (rev 1978)
+++ trunk/OpenMPT/soundlib/Snd_defs.h 2013-04-27 13:28:06 UTC (rev 1979)
@@ -24,6 +24,7 @@
const CHANNELINDEX CHANNELINDEX_INVALID = uint16_max;
typedef uint16 ORDERINDEX;
const ORDERINDEX ORDERINDEX_INVALID = uint16_max;
+ const ORDERINDEX ORDERINDEX_MAX = uint16_max - 1;
typedef uint16 PATTERNINDEX;
const PATTERNINDEX PATTERNINDEX_INVALID = uint16_max;
typedef uint8 PLUGINDEX;
Modified: trunk/OpenMPT/soundlib/Sndfile.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.cpp 2013-04-27 13:22:44 UTC (rev 1978)
+++ trunk/OpenMPT/soundlib/Sndfile.cpp 2013-04-27 13:28:06 UTC (rev 1979)
@@ -432,8 +432,6 @@
m_nDefaultRowsPerMeasure = m_nCurrentRowsPerMeasure = 16;
#endif // MODPLUG_TRACKER
- m_ModFlags.reset();
-
m_dwLastSavedWithVersion=0;
m_dwCreatedWithVersion=0;
m_bChannelMuteTogglePending.reset();
@@ -495,7 +493,6 @@
SetMixLevels(mixLevels_compatible);
SetModFlags(0);
- Order.resize(1);
Patterns.ClearPatterns();
songMessage.clear();
}
@@ -528,6 +525,7 @@
m_nOldGlbVolSlide = 0;
InitializeGlobals();
+ Order.resize(1);
// Playback
m_nPatternDelay = 0;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|