Workaround for memory bug when using wxRegConfig and calling
SetPath. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30924 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -246,7 +246,19 @@ wxConfigPathChanger::wxConfigPathChanger(const wxConfigBase *pContainer,
|
|||||||
{
|
{
|
||||||
// do change the path
|
// do change the path
|
||||||
m_bChanged = true;
|
m_bChanged = true;
|
||||||
m_strOldPath = m_pContainer->GetPath();
|
|
||||||
|
/* JACS: work around a memory bug that causes an assert
|
||||||
|
when using wxRegConfig, related to reference-counting.
|
||||||
|
Can be reproduced by removing (const wxChar*) below and
|
||||||
|
adding the following code to the config sample OnInit under
|
||||||
|
Windows:
|
||||||
|
|
||||||
|
pConfig->SetPath(wxT("MySettings"));
|
||||||
|
pConfig->SetPath(wxT(".."));
|
||||||
|
int value;
|
||||||
|
pConfig->Read(_T("MainWindowX"), & value);
|
||||||
|
*/
|
||||||
|
m_strOldPath = (const wxChar*) m_pContainer->GetPath();
|
||||||
if ( *m_strOldPath.c_str() != wxCONFIG_PATH_SEPARATOR )
|
if ( *m_strOldPath.c_str() != wxCONFIG_PATH_SEPARATOR )
|
||||||
m_strOldPath += wxCONFIG_PATH_SEPARATOR;
|
m_strOldPath += wxCONFIG_PATH_SEPARATOR;
|
||||||
m_pContainer->SetPath(strPath);
|
m_pContainer->SetPath(strPath);
|
||||||
|
Reference in New Issue
Block a user