diff options
| author | Glenn Rice <glennricster@gmail.com> | 2011-03-03 01:15:25 +0000 |
|---|---|---|
| committer | Glenn Rice <glennricster@gmail.com> | 2011-03-03 01:15:25 +0000 |
| commit | 1ae59b6dc39bd001805aea2293aaf78cf47f56b3 (patch) | |
| tree | 675bcab3cc1ba7fbdb4fbd9d5655197685fde8ae /Source/Core/Common/Src/SysConf.cpp | |
| parent | bda0794adb19a0c2c2b4a387d8b0ace133ae7a85 (diff) | |
When reloading the sysconf file make sure that the m_Entries vector is cleared.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7278 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/Common/Src/SysConf.cpp')
| -rw-r--r-- | Source/Core/Common/Src/SysConf.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/Source/Core/Common/Src/SysConf.cpp b/Source/Core/Common/Src/SysConf.cpp index 96f6b46167..f98ef21e41 100644 --- a/Source/Core/Common/Src/SysConf.cpp +++ b/Source/Core/Common/Src/SysConf.cpp @@ -38,9 +38,10 @@ void SysConf::Clear() { for (size_t i = 0; i < m_Entries.size() - 1; i++) { - delete [] m_Entries.at(i).data; - m_Entries.at(i).data = NULL; + delete [] m_Entries[i].data; + m_Entries[i].data = NULL; } + m_Entries.clear(); } bool SysConf::LoadFromFile(const char *filename) @@ -87,7 +88,7 @@ bool SysConf::LoadFromFileInternal(FILE *f) // Last offset is an invalid entry. We ignore it throughout this class for (size_t i = 0; i < m_Entries.size() - 1; i++) { - SSysConfEntry& curEntry = m_Entries.at(i); + SSysConfEntry& curEntry = m_Entries[i]; if (fseeko(f, curEntry.offset, SEEK_SET) != 0) return false; u8 description = 0; @@ -146,19 +147,19 @@ bool SysConf::SaveToFile(const char *filename) for (size_t i = 0; i < m_Entries.size() - 1; i++) { // Seek to after the name of this entry - if (fseeko(f, m_Entries.at(i).offset + m_Entries.at(i).nameLength + 1, SEEK_SET) != 0) return false; + if (fseeko(f, m_Entries[i].offset + m_Entries[i].nameLength + 1, SEEK_SET) != 0) return false; // We may have to write array length value... - if (m_Entries.at(i).type == Type_BigArray) + if (m_Entries[i].type == Type_BigArray) { - u16 tmpDataLength = Common::swap16(m_Entries.at(i).dataLength); + u16 tmpDataLength = Common::swap16(m_Entries[i].dataLength); if (fwrite(&tmpDataLength, 2, 1, f) != 1) return false; } - else if (m_Entries.at(i).type == Type_SmallArray) + else if (m_Entries[i].type == Type_SmallArray) { - if (fwrite(&m_Entries.at(i).dataLength, 1, 1, f) != 1) return false; + if (fwrite(&m_Entries[i].dataLength, 1, 1, f) != 1) return false; } // Now write the actual data - if (fwrite(m_Entries.at(i).data, m_Entries.at(i).dataLength, 1, f) != 1) return false; + if (fwrite(m_Entries[i].data, m_Entries[i].dataLength, 1, f) != 1) return false; } fclose(f); |
