diff options
| author | LPFaint99 <lpfaint99@gmail.com> | 2011-06-05 07:42:40 +0000 |
|---|---|---|
| committer | LPFaint99 <lpfaint99@gmail.com> | 2011-06-05 07:42:40 +0000 |
| commit | b808af1d7f2df9937a175e8cfd1a49c0bc41aebc (patch) | |
| tree | 1d300a226ba4cfe899a47144622692418a0744a1 /Source/Core/DiscIO/Src/NANDContentLoader.cpp | |
| parent | 2c4bc6d94c3b74f2f1f2e79e678a9118ef6106c5 (diff) | |
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
Diffstat (limited to 'Source/Core/DiscIO/Src/NANDContentLoader.cpp')
| -rw-r--r-- | Source/Core/DiscIO/Src/NANDContentLoader.cpp | 43 |
1 files changed, 13 insertions, 30 deletions
diff --git a/Source/Core/DiscIO/Src/NANDContentLoader.cpp b/Source/Core/DiscIO/Src/NANDContentLoader.cpp index 3419ea98f0..ff8be03f89 100644 --- a/Source/Core/DiscIO/Src/NANDContentLoader.cpp +++ b/Source/Core/DiscIO/Src/NANDContentLoader.cpp @@ -28,23 +28,18 @@ namespace DiscIO { -CSharedContent *CSharedContent::m_Instance = NULL; -cUIDsys *cUIDsys::m_Instance = NULL; +CSharedContent CSharedContent::m_Instance; +cUIDsys cUIDsys::m_Instance; -CSharedContent& CSharedContent::AccessInstance() -{ - if (!m_Instance) m_Instance = new CSharedContent; - return *m_Instance; -} -void CSharedContent::UpdateLocation() +CSharedContent::CSharedContent() { - delete m_Instance; - m_Instance = new CSharedContent; + UpdateLocation(); } -CSharedContent::CSharedContent() +void CSharedContent::UpdateLocation() { + m_Elements.clear(); lastID = 0; sprintf(contentMap, "%sshared1/content.map", File::GetUserPath(D_WIIUSER_IDX).c_str()); @@ -58,10 +53,7 @@ CSharedContent::CSharedContent() } CSharedContent::~CSharedContent() -{ - delete m_Instance; - m_Instance = NULL; -} +{} std::string CSharedContent::GetFilenameFromSHA1(u8* _pHash) { @@ -409,23 +401,17 @@ void CNANDContentLoader::RemoveTitle() const } } -cUIDsys& cUIDsys::AccessInstance() +cUIDsys::cUIDsys() { - if (!m_Instance) m_Instance = new cUIDsys; - return *m_Instance; + UpdateLocation(); } void cUIDsys::UpdateLocation() { - delete m_Instance; - m_Instance = new cUIDsys; -} - -cUIDsys::cUIDsys() -{ - sprintf(uidSys, "%ssys/uid.sys", File::GetUserPath(D_WIIUSER_IDX).c_str()); + m_Elements.clear(); lastUID = 0x00001000; - + sprintf(uidSys, "%ssys/uid.sys", File::GetUserPath(D_WIIUSER_IDX).c_str()); + File::IOFile pFile(uidSys, "rb"); SElement Element; while (pFile.ReadArray(&Element, 1)) @@ -448,10 +434,7 @@ cUIDsys::cUIDsys() } cUIDsys::~cUIDsys() -{ - delete m_Instance; - m_Instance = NULL; -} +{} u32 cUIDsys::GetUIDFromTitle(u64 _Title) { |
