Better handling of the refcount of the wx.App object, so it now

destroyed when expected and also resets the current instance pointer
returned by wx.GetApp().


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33515 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2005-04-11 19:14:34 +00:00
parent bcd882b35e
commit 69ac96fd0d
3 changed files with 13 additions and 8 deletions

View File

@@ -126,6 +126,8 @@ wxPyApp::wxPyApp() {
wxPyApp::~wxPyApp() {
wxPythonApp = NULL;
wxApp::SetInstance(NULL);
}
@@ -408,11 +410,11 @@ void wxPyApp::_BootstrapApp()
if (sysargv != NULL && executable != NULL) {
argc = PyList_Size(sysargv) + 1;
argv = new char*[argc+1];
argv[0] = PyString_AsString(executable);
argv[0] = strdup(PyString_AsString(executable));
int x;
for(x=1; x<argc; x++) {
PyObject *pyArg = PyList_GetItem(sysargv, x-1);
argv[x] = PyString_AsString(pyArg);
argv[x] = strdup(PyString_AsString(pyArg));
}
argv[argc] = NULL;
}
@@ -420,7 +422,7 @@ void wxPyApp::_BootstrapApp()
// Initialize wxWidgets
result = wxEntryStart(argc, argv);
delete [] argv;
// wxApp takes ownership of the argv array, don't delete it here
blocked = wxPyBeginBlockThreads();
if (! result) {