summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorLPFaint99 <lpfaint99@gmail.com>2011-01-27 23:59:12 +0000
committerLPFaint99 <lpfaint99@gmail.com>2011-01-27 23:59:12 +0000
commit72d604d3f2cec5473eebbd40f5e903f8f6f2104b (patch)
tree7120fe8de741a325aa85f3c26b6d45c4458c7361 /Source/Core
parent179fb38716272e16cad1c0bcda852cced3ed6809 (diff)
r6928 redux
removes memleak in exchange for 2 additional calls to ::IsValidCodePage git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6941 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/DolphinWX/Src/GameListCtrl.cpp21
-rw-r--r--Source/Core/DolphinWX/Src/ISOProperties.cpp19
-rw-r--r--Source/Core/DolphinWX/Src/LogWindow.cpp16
-rw-r--r--Source/Core/DolphinWX/Src/LogWindow.h2
-rw-r--r--Source/Core/DolphinWX/Src/WxUtils.cpp17
-rw-r--r--Source/Core/DolphinWX/Src/WxUtils.h2
6 files changed, 43 insertions, 34 deletions
diff --git a/Source/Core/DolphinWX/Src/GameListCtrl.cpp b/Source/Core/DolphinWX/Src/GameListCtrl.cpp
index 9dcdc30aaa..354e627b69 100644
--- a/Source/Core/DolphinWX/Src/GameListCtrl.cpp
+++ b/Source/Core/DolphinWX/Src/GameListCtrl.cpp
@@ -399,7 +399,18 @@ void CGameListCtrl::InsertItemInReportView(long _Index)
// title: 0xFF0000
// company: 0x007030
int ImageIndex = -1;
- static wxCSConv *SJISConv = WxUtils::SJISConv();
+
+#ifdef _WIN32
+ wxCSConv SJISConv(*(wxCSConv*)wxConvCurrent);
+ static bool validCP932 = ::IsValidCodePage(932) != 0;
+ if (validCP932)
+ {
+ SJISConv = wxCSConv(wxFontMapper::GetEncodingName(wxFONTENCODING_SHIFT_JIS));
+ }
+ WARN_LOG(COMMON, "Cannot Convert from Charset Windows Japanese cp 932");
+#else
+ wxCSConv SJISConv(wxFontMapper::GetEncodingName(wxFONTENCODING_EUC_JP));
+#endif
GameListItem& rISOFile = m_ISOFiles[_Index];
m_gamePath.append(rISOFile.GetFileName() + '\n');
@@ -432,12 +443,12 @@ void CGameListCtrl::InsertItemInReportView(long _Index)
case DiscIO::IVolume::COUNTRY_TAIWAN:
case DiscIO::IVolume::COUNTRY_JAPAN:
{
- wxString name = wxString(rISOFile.GetName(0).c_str(), *SJISConv);
+ wxString name = wxString(rISOFile.GetName(0).c_str(), SJISConv);
m_gameList.append(StringFromFormat("%s (J)\n", (const char *)name.c_str()));
SetItem(_Index, COLUMN_TITLE, name, -1);
SetItem(_Index, COLUMN_NOTES, wxString(company.size() ?
company.c_str() : rISOFile.GetDescription(0).c_str(),
- *SJISConv), -1);
+ SJISConv), -1);
}
break;
case DiscIO::IVolume::COUNTRY_USA:
@@ -467,9 +478,9 @@ void CGameListCtrl::InsertItemInReportView(long _Index)
{
m_gameList.append(StringFromFormat("%s (WAD)\n", rISOFile.GetName(0).c_str()));
SetItem(_Index, COLUMN_TITLE,
- wxString(rISOFile.GetName(0).c_str(), *SJISConv), -1);
+ wxString(rISOFile.GetName(0).c_str(), SJISConv), -1);
SetItem(_Index, COLUMN_NOTES,
- wxString(rISOFile.GetDescription(0).c_str(), *SJISConv), -1);
+ wxString(rISOFile.GetDescription(0).c_str(), SJISConv), -1);
}
#ifndef _WIN32
diff --git a/Source/Core/DolphinWX/Src/ISOProperties.cpp b/Source/Core/DolphinWX/Src/ISOProperties.cpp
index 972dea2b2c..c8be6e0da4 100644
--- a/Source/Core/DolphinWX/Src/ISOProperties.cpp
+++ b/Source/Core/DolphinWX/Src/ISOProperties.cpp
@@ -27,7 +27,6 @@
#include "GeckoCodeDiag.h"
#include "ConfigManager.h"
#include "StringUtil.h"
-#include "WxUtils.h"
#include "../resources/isoprop_file.xpm"
#include "../resources/isoprop_folder.xpm"
@@ -1249,14 +1248,24 @@ void CISOProperties::ChangeBannerDetails(int lang)
|| OpenGameListItem->GetCountry() == DiscIO::IVolume::COUNTRY_TAIWAN
|| OpenGameListItem->GetPlatform() == GameListItem::WII_WAD)
{
- static wxCSConv * SJISConv = WxUtils::SJISConv();
+#ifdef _WIN32
+ wxCSConv SJISConv(*(wxCSConv*)wxConvCurrent);
+ static bool validCP932 = ::IsValidCodePage(932) != 0;
+ if (validCP932)
+ {
+ SJISConv = wxCSConv(wxFontMapper::GetEncodingName(wxFONTENCODING_SHIFT_JIS));
+ }
+ WARN_LOG(COMMON, "Cannot Convert from Charset Windows Japanese cp 932");
+#else
+ wxCSConv SJISConv(wxFontMapper::GetEncodingName(wxFONTENCODING_EUC_JP));
+#endif
- wxString name = wxString(OpenGameListItem->GetName(0).c_str(), *SJISConv);
+ wxString name = wxString(OpenGameListItem->GetName(0).c_str(), SJISConv);
// Updates the informations shown in the window
m_ShortName->SetValue(name);
- m_Comment->SetValue(wxString(OpenGameListItem->GetDescription(0).c_str(), *SJISConv));
- m_Maker->SetValue(wxString(OpenGameListItem->GetCompany().c_str(), *SJISConv));//dev too
+ m_Comment->SetValue(wxString(OpenGameListItem->GetDescription(0).c_str(), SJISConv));
+ m_Maker->SetValue(wxString(OpenGameListItem->GetCompany().c_str(), SJISConv));//dev too
std::string filename, extension;
SplitPath(OpenGameListItem->GetFileName(), 0, &filename, &extension);
diff --git a/Source/Core/DolphinWX/Src/LogWindow.cpp b/Source/Core/DolphinWX/Src/LogWindow.cpp
index 85a8b090cc..b7dee1376e 100644
--- a/Source/Core/DolphinWX/Src/LogWindow.cpp
+++ b/Source/Core/DolphinWX/Src/LogWindow.cpp
@@ -22,7 +22,6 @@
#include "FileUtil.h"
#include "DebuggerUIUtil.h"
#include <wx/fontmap.h>
-#include "WxUtils.h"
// Milliseconds between msgQueue flushes to wxTextCtrl
#define UPDATETIME 200
@@ -50,8 +49,18 @@ CLogWindow::CLogWindow(CFrame *parent, wxWindowID id, const wxPoint& pos,
, Parent(parent) , m_LogAccess(true)
, m_Log(NULL), m_cmdline(NULL), m_FontChoice(NULL)
, m_LogSection(1)
+ , m_SJISConv(*(wxCSConv*)wxConvCurrent)
{
- m_SJISConv = WxUtils::SJISConv();
+#ifdef _WIN32
+ static bool validCP932 = ::IsValidCodePage(932) != 0;
+ if (validCP932)
+ {
+ m_SJISConv = wxCSConv(wxFontMapper::GetEncodingName(wxFONTENCODING_SHIFT_JIS));
+ }
+ WARN_LOG(COMMON, "Cannot Convert from Charset Windows Japanese cp 932");
+#else
+ m_SJISConv = wxCSConv(wxFontMapper::GetEncodingName(wxFONTENCODING_EUC_JP));
+#endif
m_LogManager = LogManager::GetInstance();
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i)
@@ -156,7 +165,6 @@ CLogWindow::~CLogWindow()
}
m_LogTimer->Stop();
delete m_LogTimer;
- delete m_SJISConv;
}
void CLogWindow::OnClose(wxCloseEvent& event)
@@ -537,6 +545,6 @@ void CLogWindow::Log(LogTypes::LOG_LEVELS level, const char *text)
m_LogSection.Enter();
if (msgQueue.size() >= 100)
msgQueue.pop();
- msgQueue.push(std::pair<u8, wxString>((u8)level, wxString(text, *m_SJISConv)));
+ msgQueue.push(std::pair<u8, wxString>((u8)level, wxString(text, m_SJISConv)));
m_LogSection.Leave();
}
diff --git a/Source/Core/DolphinWX/Src/LogWindow.h b/Source/Core/DolphinWX/Src/LogWindow.h
index 71b9f89ad7..57db6e14f7 100644
--- a/Source/Core/DolphinWX/Src/LogWindow.h
+++ b/Source/Core/DolphinWX/Src/LogWindow.h
@@ -85,7 +85,7 @@ private:
Common::CriticalSection m_LogSection;
- wxCSConv* m_SJISConv;
+ wxCSConv m_SJISConv;
DECLARE_EVENT_TABLE()
diff --git a/Source/Core/DolphinWX/Src/WxUtils.cpp b/Source/Core/DolphinWX/Src/WxUtils.cpp
index 423d3d0865..04e0d1453b 100644
--- a/Source/Core/DolphinWX/Src/WxUtils.cpp
+++ b/Source/Core/DolphinWX/Src/WxUtils.cpp
@@ -19,26 +19,9 @@
#include <wx/wx.h>
#include <wx/string.h>
-#include <wx/fontmap.h>
namespace WxUtils {
- wxCSConv *SJISConv()
-{
-#ifdef _WIN32
-
- static bool validCP932 = ::IsValidCodePage(932) != 0;
- if (validCP932)
- {
- return new wxCSConv(wxFontMapper::GetEncodingName(wxFONTENCODING_SHIFT_JIS));
- }
- WARN_LOG(COMMON, "Cannot Convert from Charset Windows Japanese cp 932");
- return (wxCSConv*)wxConvCurrent;
-#else
- return new wxCSConv(wxFontMapper::GetEncodingName(wxFONTENCODING_EUC_JP));
-#endif
-}
-
// Launch a file according to its mime type
void Launch(const char *filename)
{
diff --git a/Source/Core/DolphinWX/Src/WxUtils.h b/Source/Core/DolphinWX/Src/WxUtils.h
index 3bb9d3539f..8e837e9e96 100644
--- a/Source/Core/DolphinWX/Src/WxUtils.h
+++ b/Source/Core/DolphinWX/Src/WxUtils.h
@@ -20,8 +20,6 @@
namespace WxUtils {
-wxCSConv * SJISConv();
-
// Launch a file according to its mime type
void Launch(const char *filename);