mirror of https://github.com/axmolengine/axmol.git
Merge pull request #4571 from dumganhar/user-default-fix
closed #3457: Fix of UserDefault. Infinite loop in UserDefault's destructor on iOS. The destructor of UserDefault is private now.
This commit is contained in:
commit
d3e7ccd872
|
@ -140,23 +140,16 @@ static void setValueForKey(const char* pKey, const char* pValue)
|
|||
* implements of UserDefault
|
||||
*/
|
||||
|
||||
UserDefault* UserDefault::_userDefault = 0;
|
||||
UserDefault* UserDefault::_userDefault = nullptr;
|
||||
string UserDefault::_filePath = string("");
|
||||
bool UserDefault::_isFilePathInitialized = false;
|
||||
|
||||
/**
|
||||
* If the user invoke delete UserDefault::getInstance(), should set _userDefault
|
||||
* to null to avoid error when he invoke UserDefault::getInstance() later.
|
||||
*/
|
||||
UserDefault::~UserDefault()
|
||||
{
|
||||
CC_SAFE_DELETE(_userDefault);
|
||||
_userDefault = nullptr;
|
||||
}
|
||||
|
||||
UserDefault::UserDefault()
|
||||
{
|
||||
_userDefault = nullptr;
|
||||
}
|
||||
|
||||
bool UserDefault::getBoolForKey(const char* pKey)
|
||||
|
@ -433,7 +426,7 @@ UserDefault* UserDefault::getInstance()
|
|||
|
||||
void UserDefault::destroyInstance()
|
||||
{
|
||||
_userDefault = nullptr;
|
||||
CC_SAFE_DELETE(_userDefault);
|
||||
}
|
||||
|
||||
// XXX: deprecated
|
||||
|
|
|
@ -46,12 +46,6 @@ NS_CC_BEGIN
|
|||
class CC_DLL UserDefault
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* @js NA
|
||||
* @lua NA
|
||||
*/
|
||||
~UserDefault();
|
||||
|
||||
// get value methods
|
||||
|
||||
/**
|
||||
|
@ -186,6 +180,8 @@ public:
|
|||
|
||||
private:
|
||||
UserDefault();
|
||||
~UserDefault();
|
||||
|
||||
static bool createXMLFile();
|
||||
static void initXMLFilePath();
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ NS_CC_BEGIN
|
|||
* implements of UserDefault
|
||||
*/
|
||||
|
||||
UserDefault* UserDefault::_userDefault = 0;
|
||||
UserDefault* UserDefault::_userDefault = nullptr;
|
||||
string UserDefault::_filePath = string("");
|
||||
bool UserDefault::_isFilePathInitialized = false;
|
||||
|
||||
|
@ -134,19 +134,12 @@ static void deleteNodeByKey(const char *pKey)
|
|||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* If the user invoke delete UserDefault::getInstance(), should set _userDefault
|
||||
* to null to avoid error when he invoke UserDefault::getInstance() later.
|
||||
*/
|
||||
UserDefault::~UserDefault()
|
||||
{
|
||||
CC_SAFE_DELETE(_userDefault);
|
||||
_userDefault = nullptr;
|
||||
}
|
||||
|
||||
UserDefault::UserDefault()
|
||||
{
|
||||
_userDefault = nullptr;
|
||||
}
|
||||
|
||||
bool UserDefault::getBoolForKey(const char* pKey)
|
||||
|
@ -503,8 +496,7 @@ UserDefault* UserDefault::getInstance()
|
|||
|
||||
void UserDefault::destroyInstance()
|
||||
{
|
||||
delete _userDefault;
|
||||
_userDefault = nullptr;
|
||||
CC_SAFE_DELETE(_userDefault);
|
||||
}
|
||||
|
||||
// XXX: deprecated
|
||||
|
|
|
@ -49,7 +49,7 @@ NS_CC_BEGIN
|
|||
* implements of UserDefault
|
||||
*/
|
||||
|
||||
UserDefault* UserDefault::_userDefault = 0;
|
||||
UserDefault* UserDefault::_userDefault = nullptr;
|
||||
string UserDefault::_filePath = string("");
|
||||
bool UserDefault::_isFilePathInitialized = false;
|
||||
|
||||
|
@ -135,19 +135,12 @@ static void deleteNodeByKey(const char *pKey)
|
|||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* If the user invoke delete UserDefault::getInstance(), should set _userDefault
|
||||
* to null to avoid error when he invoke UserDefault::getInstance() later.
|
||||
*/
|
||||
UserDefault::~UserDefault()
|
||||
{
|
||||
CC_SAFE_DELETE(_userDefault);
|
||||
_userDefault = nullptr;
|
||||
}
|
||||
|
||||
UserDefault::UserDefault()
|
||||
{
|
||||
_userDefault = nullptr;
|
||||
}
|
||||
|
||||
// XXX: deprecated
|
||||
|
@ -158,7 +151,7 @@ void UserDefault::purgeSharedUserDefault()
|
|||
|
||||
void UserDefault::destroyInstance()
|
||||
{
|
||||
_userDefault = nullptr;
|
||||
CC_SAFE_DELETE(_userDefault);
|
||||
}
|
||||
|
||||
bool UserDefault::getBoolForKey(const char* pKey)
|
||||
|
|
Loading…
Reference in New Issue