mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-06-14 00:58:51 +02:00
fix infinitely recursive deletion from r7587 and actually update locations of content.map and uid.sys
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7588 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -22,6 +22,7 @@
|
|||||||
#include "IniFile.h"
|
#include "IniFile.h"
|
||||||
#include "ConfigManager.h"
|
#include "ConfigManager.h"
|
||||||
#include "FileUtil.h"
|
#include "FileUtil.h"
|
||||||
|
#include "NANDContentLoader.h"
|
||||||
|
|
||||||
SConfig* SConfig::m_Instance;
|
SConfig* SConfig::m_Instance;
|
||||||
|
|
||||||
@ -278,6 +279,8 @@ void SConfig::LoadSettings()
|
|||||||
|
|
||||||
ini.Get("General", "NANDRoot", &m_NANDPath);
|
ini.Get("General", "NANDRoot", &m_NANDPath);
|
||||||
m_NANDPath = File::GetUserPath(D_WIIROOT_IDX, m_NANDPath);
|
m_NANDPath = File::GetUserPath(D_WIIROOT_IDX, m_NANDPath);
|
||||||
|
DiscIO::cUIDsys::AccessInstance().UpdateLocation();
|
||||||
|
DiscIO::CSharedContent::AccessInstance().UpdateLocation();
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -28,23 +28,18 @@
|
|||||||
|
|
||||||
namespace DiscIO
|
namespace DiscIO
|
||||||
{
|
{
|
||||||
CSharedContent *CSharedContent::m_Instance = NULL;
|
CSharedContent CSharedContent::m_Instance;
|
||||||
cUIDsys *cUIDsys::m_Instance = NULL;
|
cUIDsys cUIDsys::m_Instance;
|
||||||
|
|
||||||
CSharedContent& CSharedContent::AccessInstance()
|
|
||||||
|
CSharedContent::CSharedContent()
|
||||||
{
|
{
|
||||||
if (!m_Instance) m_Instance = new CSharedContent;
|
UpdateLocation();
|
||||||
return *m_Instance;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSharedContent::UpdateLocation()
|
void CSharedContent::UpdateLocation()
|
||||||
{
|
{
|
||||||
delete m_Instance;
|
m_Elements.clear();
|
||||||
m_Instance = new CSharedContent;
|
|
||||||
}
|
|
||||||
|
|
||||||
CSharedContent::CSharedContent()
|
|
||||||
{
|
|
||||||
lastID = 0;
|
lastID = 0;
|
||||||
sprintf(contentMap, "%sshared1/content.map", File::GetUserPath(D_WIIUSER_IDX).c_str());
|
sprintf(contentMap, "%sshared1/content.map", File::GetUserPath(D_WIIUSER_IDX).c_str());
|
||||||
|
|
||||||
@ -58,10 +53,7 @@ CSharedContent::CSharedContent()
|
|||||||
}
|
}
|
||||||
|
|
||||||
CSharedContent::~CSharedContent()
|
CSharedContent::~CSharedContent()
|
||||||
{
|
{}
|
||||||
delete m_Instance;
|
|
||||||
m_Instance = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string CSharedContent::GetFilenameFromSHA1(u8* _pHash)
|
std::string CSharedContent::GetFilenameFromSHA1(u8* _pHash)
|
||||||
{
|
{
|
||||||
@ -409,22 +401,16 @@ void CNANDContentLoader::RemoveTitle() const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cUIDsys& cUIDsys::AccessInstance()
|
cUIDsys::cUIDsys()
|
||||||
{
|
{
|
||||||
if (!m_Instance) m_Instance = new cUIDsys;
|
UpdateLocation();
|
||||||
return *m_Instance;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void cUIDsys::UpdateLocation()
|
void cUIDsys::UpdateLocation()
|
||||||
{
|
{
|
||||||
delete m_Instance;
|
m_Elements.clear();
|
||||||
m_Instance = new cUIDsys;
|
|
||||||
}
|
|
||||||
|
|
||||||
cUIDsys::cUIDsys()
|
|
||||||
{
|
|
||||||
sprintf(uidSys, "%ssys/uid.sys", File::GetUserPath(D_WIIUSER_IDX).c_str());
|
|
||||||
lastUID = 0x00001000;
|
lastUID = 0x00001000;
|
||||||
|
sprintf(uidSys, "%ssys/uid.sys", File::GetUserPath(D_WIIUSER_IDX).c_str());
|
||||||
|
|
||||||
File::IOFile pFile(uidSys, "rb");
|
File::IOFile pFile(uidSys, "rb");
|
||||||
SElement Element;
|
SElement Element;
|
||||||
@ -448,10 +434,7 @@ cUIDsys::cUIDsys()
|
|||||||
}
|
}
|
||||||
|
|
||||||
cUIDsys::~cUIDsys()
|
cUIDsys::~cUIDsys()
|
||||||
{
|
{}
|
||||||
delete m_Instance;
|
|
||||||
m_Instance = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
u32 cUIDsys::GetUIDFromTitle(u64 _Title)
|
u32 cUIDsys::GetUIDFromTitle(u64 _Title)
|
||||||
{
|
{
|
||||||
|
@ -106,11 +106,11 @@ class CSharedContent
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
static CSharedContent& AccessInstance();
|
static CSharedContent& AccessInstance() { return m_Instance; }
|
||||||
static void UpdateLocation();
|
|
||||||
|
|
||||||
std::string GetFilenameFromSHA1(u8* _pHash);
|
std::string GetFilenameFromSHA1(u8* _pHash);
|
||||||
std::string AddSharedContent(u8* _pHash);
|
std::string AddSharedContent(u8* _pHash);
|
||||||
|
void UpdateLocation();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
@ -130,19 +130,19 @@ private:
|
|||||||
u32 lastID;
|
u32 lastID;
|
||||||
char contentMap[1024];
|
char contentMap[1024];
|
||||||
std::vector<SElement> m_Elements;
|
std::vector<SElement> m_Elements;
|
||||||
static CSharedContent *m_Instance;
|
static CSharedContent m_Instance;
|
||||||
};
|
};
|
||||||
|
|
||||||
class cUIDsys
|
class cUIDsys
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
static cUIDsys& AccessInstance();
|
static cUIDsys& AccessInstance() { return m_Instance; }
|
||||||
static void UpdateLocation();
|
|
||||||
|
|
||||||
u32 GetUIDFromTitle(u64 _Title);
|
u32 GetUIDFromTitle(u64 _Title);
|
||||||
void AddTitle(u64 _Title);
|
void AddTitle(u64 _Title);
|
||||||
void GetTitleIDs(std::vector<u64>& _TitleIDs, bool _owned = false);
|
void GetTitleIDs(std::vector<u64>& _TitleIDs, bool _owned = false);
|
||||||
|
void UpdateLocation();
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|
||||||
@ -160,7 +160,7 @@ private:
|
|||||||
u32 lastUID;
|
u32 lastUID;
|
||||||
char uidSys[1024];
|
char uidSys[1024];
|
||||||
std::vector<SElement> m_Elements;
|
std::vector<SElement> m_Elements;
|
||||||
static cUIDsys *m_Instance;
|
static cUIDsys m_Instance;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1203,8 +1203,8 @@ void CConfigMain::NANDRootChanged(wxFileDirPickerEvent& WXUNUSED (event))
|
|||||||
SConfig::GetInstance().m_NANDPath = File::GetUserPath(D_WIIROOT_IDX, std::string(NANDRoot->GetPath().mb_str()));
|
SConfig::GetInstance().m_NANDPath = File::GetUserPath(D_WIIROOT_IDX, std::string(NANDRoot->GetPath().mb_str()));
|
||||||
NANDRoot->SetPath(wxString(NANDPath.c_str(), *wxConvCurrent));
|
NANDRoot->SetPath(wxString(NANDPath.c_str(), *wxConvCurrent));
|
||||||
SConfig::GetInstance().m_SYSCONF->UpdateLocation();
|
SConfig::GetInstance().m_SYSCONF->UpdateLocation();
|
||||||
DiscIO::cUIDsys::UpdateLocation();
|
DiscIO::cUIDsys::AccessInstance().UpdateLocation();
|
||||||
DiscIO::CSharedContent::UpdateLocation();
|
DiscIO::CSharedContent::AccessInstance().UpdateLocation();
|
||||||
main_frame->UpdateWiiMenuChoice();
|
main_frame->UpdateWiiMenuChoice();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user