mirror of https://github.com/axmolengine/axmol.git
fixed #455: release CCUserDefault at end & fix a bug when the user delete CCUserDefault carelessly
This commit is contained in:
parent
bfcee3e2ae
commit
e14040730b
|
@ -46,6 +46,7 @@ THE SOFTWARE.
|
|||
#include "CCGL.h"
|
||||
#include "CCAnimationCache.h"
|
||||
#include "CCTouch.h"
|
||||
#include "CCUserDefault.h"
|
||||
|
||||
#if CC_ENABLE_PROFILERS
|
||||
#include "support/CCProfiling.h"
|
||||
|
@ -569,6 +570,7 @@ void CCDirector::purgeDirector()
|
|||
CCActionManager::sharedManager()->purgeSharedManager();
|
||||
CCScheduler::purgeSharedScheduler();
|
||||
CCTextureCache::purgeSharedTextureCache();
|
||||
CCUserDefault::purgeSharedUserDefault();
|
||||
|
||||
// OpenGL view
|
||||
m_pobOpenGLView->release();
|
||||
|
|
|
@ -35,7 +35,7 @@ NS_CC_BEGIN;
|
|||
class CC_DLL CCUserDefault
|
||||
{
|
||||
public:
|
||||
~CCUserDefault() {}
|
||||
~CCUserDefault();
|
||||
|
||||
// get value methods
|
||||
bool getBoolForKey(const char* pKey);
|
||||
|
@ -52,6 +52,7 @@ public:
|
|||
void setStringForKey(const char* pKey, std::string value);
|
||||
|
||||
static CCUserDefault* sharedUserDefault();
|
||||
static void purgeSharedUserDefault();
|
||||
const static std::string& getXMLFilePath();
|
||||
|
||||
private:
|
||||
|
|
|
@ -104,7 +104,7 @@ int CCFileUtils::ccLoadFileIntoMemory(const char *filename, unsigned char **out)
|
|||
return 0;
|
||||
}
|
||||
|
||||
const string CCFileUtils::getWriteablePath()
|
||||
string CCFileUtils::getWriteablePath()
|
||||
{
|
||||
// the path is: /data/data/ + package name
|
||||
string dir("/data/data");
|
||||
|
|
|
@ -163,7 +163,7 @@ void CCFileUtils::setRelativePath(const char* pszRelativePath)
|
|||
CCAssert(0, "Have not implement!");
|
||||
}
|
||||
|
||||
const string CCFileUtils::getWriteablePath()
|
||||
string CCFileUtils::getWriteablePath()
|
||||
{
|
||||
// return the path that the exe file saved in
|
||||
|
||||
|
|
|
@ -133,6 +133,21 @@ CCUserDefault* CCUserDefault::m_spUserDefault = 0;
|
|||
string CCUserDefault::m_sFilePath = string("");
|
||||
bool CCUserDefault::m_sbIsFilePathInitialized = false;
|
||||
|
||||
/**
|
||||
* If the user invoke delete CCUserDefault::sharedUserDefault(), should set m_spUserDefault
|
||||
* to null to avoid error when he invoke CCUserDefault::sharedUserDefault() later.
|
||||
*/
|
||||
CCUserDefault::~CCUserDefault()
|
||||
{
|
||||
m_spUserDefault = NULL;
|
||||
}
|
||||
|
||||
void CCUserDefault::purgeSharedUserDefault()
|
||||
{
|
||||
CC_SAFE_DELETE(m_spUserDefault);
|
||||
m_spUserDefault = NULL;
|
||||
}
|
||||
|
||||
bool CCUserDefault::getBoolForKey(const char* pKey)
|
||||
{
|
||||
const char* value = getValueForKey(pKey);
|
||||
|
|
Loading…
Reference in New Issue