diff options
| author | Ryan Houdek <Sonicadvance1@gmail.com> | 2014-03-23 00:34:26 -0500 |
|---|---|---|
| committer | Ryan Houdek <Sonicadvance1@gmail.com> | 2014-03-23 00:34:26 -0500 |
| commit | a3e18cd498e6a02dfd615da25e975f110e8cf365 (patch) | |
| tree | 63d4fabcda7d8d4ddfa1982cc406acf010cb1132 /Source/Core/DiscIO/FileSystemGCWii.cpp | |
| parent | b8f469dedd155f6fd42239cdf22f239037da6fce (diff) | |
| parent | bd1ce18f9092f2929929513729e8abee8f60e4a5 (diff) | |
Merge pull request #171 from lioncash/rarc-cleanup
File tree building cleanup
Diffstat (limited to 'Source/Core/DiscIO/FileSystemGCWii.cpp')
| -rw-r--r-- | Source/Core/DiscIO/FileSystemGCWii.cpp | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/Source/Core/DiscIO/FileSystemGCWii.cpp b/Source/Core/DiscIO/FileSystemGCWii.cpp index 1ecf71d4b5..f9f88e8d02 100644 --- a/Source/Core/DiscIO/FileSystemGCWii.cpp +++ b/Source/Core/DiscIO/FileSystemGCWii.cpp @@ -46,7 +46,7 @@ u64 CFileSystemGCWii::GetFileSize(const std::string& _rFullPath) return 0; } -const char* CFileSystemGCWii::GetFileName(u64 _Address) +const std::string CFileSystemGCWii::GetFileName(u64 _Address) { if (!m_Initialized) InitFileSystem(); @@ -239,7 +239,7 @@ const SFileInfo* CFileSystemGCWii::FindFileInfo(const std::string& _rFullPath) for (auto& fileInfo : m_FileInfoVector) { - if (!strcasecmp(fileInfo.m_FullPath, _rFullPath.c_str())) + if (!strcasecmp(fileInfo.m_FullPath.c_str(), _rFullPath.c_str())) return &fileInfo; } @@ -297,13 +297,11 @@ void CFileSystemGCWii::InitFileSystem() NameTableOffset += 0xC; } - BuildFilenames(1, m_FileInfoVector.size(), nullptr, NameTableOffset); + BuildFilenames(1, m_FileInfoVector.size(), "", NameTableOffset); } } -// Changed this stuff from C++ string to C strings for speed in debug mode. Doesn't matter in release, but -// std::string is SLOW in debug mode. -size_t CFileSystemGCWii::BuildFilenames(const size_t _FirstIndex, const size_t _LastIndex, const char* _szDirectory, u64 _NameTableOffset) +size_t CFileSystemGCWii::BuildFilenames(const size_t _FirstIndex, const size_t _LastIndex, const std::string& _szDirectory, u64 _NameTableOffset) { size_t CurrentIndex = _FirstIndex; @@ -316,21 +314,19 @@ size_t CFileSystemGCWii::BuildFilenames(const size_t _FirstIndex, const size_t _ // check next index if (rFileInfo->IsDirectory()) { - // this is a directory, build up the new szDirectory - if (_szDirectory != nullptr) - CharArrayFromFormat(rFileInfo->m_FullPath, "%s%s/", _szDirectory, filename.c_str()); + if (_szDirectory.empty()) + rFileInfo->m_FullPath += StringFromFormat("%s/", filename.c_str()); else - CharArrayFromFormat(rFileInfo->m_FullPath, "%s/", filename.c_str()); + rFileInfo->m_FullPath += StringFromFormat("%s%s/", _szDirectory.c_str(), filename.c_str()); CurrentIndex = BuildFilenames(CurrentIndex + 1, (size_t) rFileInfo->m_FileSize, rFileInfo->m_FullPath, _NameTableOffset); } - else + else // This is a filename { - // this is a filename - if (_szDirectory != nullptr) - CharArrayFromFormat(rFileInfo->m_FullPath, "%s%s", _szDirectory, filename.c_str()); + if (_szDirectory.empty()) + rFileInfo->m_FullPath += filename; else - CharArrayFromFormat(rFileInfo->m_FullPath, "%s", filename.c_str()); + rFileInfo->m_FullPath += StringFromFormat("%s%s", _szDirectory.c_str(), filename.c_str()); CurrentIndex++; } |
