- wxPyValidator* ptr = NULL;
- wxPyValidator* self = (wxPyValidator*)this;
-
- bool doSave = wxPyRestoreThread();
- if (self->m_myInst.findCallback("Clone")) {
- PyObject* ro;
- ro = self->m_myInst.callCallbackObj(Py_BuildValue("()"));
- SWIG_GetPtrObj(ro, (void **)&ptr, "_wxPyValidator_p");
+ wxPyValidator* ptr = NULL;
+ wxPyValidator* self = (wxPyValidator*)this;
+
+ bool doSave = wxPyRestoreThread();
+ if (self->m_myInst.findCallback("Clone")) {
+ PyObject* ro;
+ ro = self->m_myInst.callCallbackObj(Py_BuildValue("()"));
+ SWIG_GetPtrObj(ro, (void **)&ptr, "_wxPyValidator_p");
+ }
+ // This is very dangerous!!! But is the only way I could find
+ // to squash a memory leak. Currently it is okay, but if the
+ // validator architecture in wxWindows ever changes, problems
+ // could arise.
+ delete self;
+
+ wxPySaveThread(doSave);
+ return ptr;