summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorGlenn Rice <glennricster@gmail.com>2013-01-03 10:35:07 -0600
committerGlenn Rice <glennricster@gmail.com>2013-01-03 10:35:07 -0600
commit3da05af30ab82639b5898f6ef46326bdd2f1dc7e (patch)
tree71438d9ed6ea197007c31b61499e69cd31f56737 /Source/Core
parent91023e133b4639f93fbcdb153f66179f7b9b5dff (diff)
Fix truncated names and descriptions in the game list on linux.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Common/Src/ChunkFile.h9
-rw-r--r--Source/Core/DolphinWX/Src/GameListCtrl.cpp17
-rw-r--r--Source/Core/DolphinWX/Src/ISOFile.cpp6
3 files changed, 20 insertions, 12 deletions
diff --git a/Source/Core/Common/Src/ChunkFile.h b/Source/Core/Common/Src/ChunkFile.h
index be8b49a3a3..e26536735d 100644
--- a/Source/Core/Common/Src/ChunkFile.h
+++ b/Source/Core/Common/Src/ChunkFile.h
@@ -155,7 +155,14 @@ public:
Do(stringLen);
switch (mode) {
- case MODE_READ: x = (wchar_t*)*ptr; break;
+ case MODE_READ:
+ {
+ wchar_t* tmp = new wchar_t[stringLen / sizeof(wchar_t)];
+ memcpy(tmp, *ptr, stringLen);
+ x = tmp;
+ delete[] tmp;
+ }
+ break;
case MODE_WRITE: memcpy(*ptr, x.c_str(), stringLen); break;
case MODE_MEASURE: break;
case MODE_VERIFY: _dbg_assert_msg_(COMMON, x == (wchar_t*)*ptr, "Savestate verification failure: \"%ls\" != \"%ls\" (at %p).\n", x.c_str(), (wchar_t*)*ptr, ptr); break;
diff --git a/Source/Core/DolphinWX/Src/GameListCtrl.cpp b/Source/Core/DolphinWX/Src/GameListCtrl.cpp
index fbefb1c769..c67ee83ed3 100644
--- a/Source/Core/DolphinWX/Src/GameListCtrl.cpp
+++ b/Source/Core/DolphinWX/Src/GameListCtrl.cpp
@@ -464,14 +464,15 @@ void CGameListCtrl::InsertItemInReportView(long _Index)
SelectedLanguage = 0;
default:
{
- wxCSConv WindowsCP1252(wxFontMapper::GetEncodingName(wxFONTENCODING_CP1252));
- rISOFile.GetName(wstring_name, SelectedLanguage);
-
- name = wxString(rISOFile.GetName(SelectedLanguage).c_str(), WindowsCP1252);
- m_gameList.append(StringFromFormat("%s (%c)\n",
- rISOFile.GetName(SelectedLanguage).c_str(), (rISOFile.GetCountry() == DiscIO::IVolume::COUNTRY_USA)?'U':'E'));
- description = wxString(company.size() ? company.c_str() :
- rISOFile.GetDescription(SelectedLanguage).c_str(), WindowsCP1252);
+ wxCSConv WindowsCP1252(wxFontMapper::GetEncodingName(wxFONTENCODING_CP1252));
+ rISOFile.GetName(wstring_name, SelectedLanguage);
+
+ name = wxString(rISOFile.GetName(SelectedLanguage).c_str(), WindowsCP1252);
+ m_gameList.append(StringFromFormat("%s (%c)\n",
+ rISOFile.GetName(SelectedLanguage).c_str(),
+ (rISOFile.GetCountry() == DiscIO::IVolume::COUNTRY_USA) ? 'U' : 'E'));
+ description = wxString(company.size() ? company.c_str() :
+ rISOFile.GetDescription(SelectedLanguage).c_str(), WindowsCP1252);
}
break;
}
diff --git a/Source/Core/DolphinWX/Src/ISOFile.cpp b/Source/Core/DolphinWX/Src/ISOFile.cpp
index a3d3761e62..a00ce2c496 100644
--- a/Source/Core/DolphinWX/Src/ISOFile.cpp
+++ b/Source/Core/DolphinWX/Src/ISOFile.cpp
@@ -140,8 +140,8 @@ GameListItem::GameListItem(const std::string& _rFileName)
SplitPath(m_FileName, NULL, &FileName, NULL);
int length = FileName.length();
wFileName.reserve(length+1);
- for (int i = 0; i < length; ++i)
- wFileName.push_back(FileName[i]);
+ for (int j = 0; j < length; ++j)
+ wFileName.push_back(FileName[j]);
wFileName.push_back(0);
}
*i = wFileName;
@@ -283,7 +283,7 @@ bool GameListItem::GetName(std::wstring& wName, int index) const
// This function will only succeed for wii discs with banners or WADs
// utilize the same array as for gc discs (-1= Japanese, 0 = English etc
index++;
- if ((index >=0) && (index < 10))
+ if ((index >= 0) && (index < 10))
{
if (m_wNames.size() > (size_t)index)
{