Skip to content

Commit

Permalink
Merge pull request #2195 from JosJuice/nandcontentloader-singletons
Browse files Browse the repository at this point in the history
Don't construct NANDContentLoader classes before Main.cpp runs
  • Loading branch information
skidau committed Mar 13, 2015
2 parents 899a507 + 66bb300 commit 2916aed
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 13 deletions.
6 changes: 0 additions & 6 deletions Source/Core/DiscIO/NANDContentLoader.cpp
Expand Up @@ -25,9 +25,6 @@

namespace DiscIO
{
CSharedContent CSharedContent::m_Instance;
cUIDsys cUIDsys::m_Instance;


CSharedContent::CSharedContent()
{
Expand Down Expand Up @@ -306,9 +303,6 @@ DiscIO::IVolume::ECountry CNANDContentLoader::GetCountry() const
}


CNANDContentManager CNANDContentManager::m_Instance;


CNANDContentManager::~CNANDContentManager()
{
for (auto& entry : m_Map)
Expand Down
19 changes: 12 additions & 7 deletions Source/Core/DiscIO/NANDContentLoader.h
Expand Up @@ -64,11 +64,11 @@ class INANDContentLoader
};


// we open the NAND Content files to often... lets cache them
// we open the NAND Content files too often... let's cache them
class CNANDContentManager
{
public:
static CNANDContentManager& Access() { return m_Instance; }
static CNANDContentManager& Access() { static CNANDContentManager instance; return instance; }
u64 Install_WiiWAD(std::string &fileName);

const INANDContentLoader& GetNANDLoader(const std::string& _rName, bool forceReload = false);
Expand All @@ -79,7 +79,8 @@ class CNANDContentManager
CNANDContentManager() {}
~CNANDContentManager();

static CNANDContentManager m_Instance;
CNANDContentManager(CNANDContentManager const&) = delete;
void operator=(CNANDContentManager const&) = delete;

typedef std::map<std::string, INANDContentLoader*> CNANDContentMap;
CNANDContentMap m_Map;
Expand All @@ -88,7 +89,7 @@ class CNANDContentManager
class CSharedContent
{
public:
static CSharedContent& AccessInstance() { return m_Instance; }
static CSharedContent& AccessInstance() { static CSharedContent instance; return instance; }

std::string GetFilenameFromSHA1(const u8* _pHash);
std::string AddSharedContent(const u8* _pHash);
Expand All @@ -98,6 +99,9 @@ class CSharedContent
CSharedContent();
virtual ~CSharedContent();

CSharedContent(CSharedContent const&) = delete;
void operator=(CSharedContent const&) = delete;

#pragma pack(push,1)
struct SElement
{
Expand All @@ -109,13 +113,12 @@ class CSharedContent
u32 m_lastID;
std::string m_contentMap;
std::vector<SElement> m_Elements;
static CSharedContent m_Instance;
};

class cUIDsys
{
public:
static cUIDsys& AccessInstance() { return m_Instance; }
static cUIDsys& AccessInstance() { static cUIDsys instance; return instance; }

u32 GetUIDFromTitle(u64 _Title);
void AddTitle(u64 _Title);
Expand All @@ -126,6 +129,9 @@ class cUIDsys
cUIDsys();
virtual ~cUIDsys();

cUIDsys(cUIDsys const&) = delete;
void operator=(cUIDsys const&) = delete;

#pragma pack(push,1)
struct SElement
{
Expand All @@ -137,7 +143,6 @@ class cUIDsys
u32 m_lastUID;
std::string m_uidSys;
std::vector<SElement> m_Elements;
static cUIDsys m_Instance;
};

}

0 comments on commit 2916aed

Please sign in to comment.