Fixed problem where the wrong class name could sometimes be used for OOR
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19610 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -622,13 +622,19 @@ PyObject* wxPyClassExists(const wxString& className) {
|
||||
if (!className)
|
||||
return NULL;
|
||||
|
||||
if ((item = PyDict_GetItemString(wxPyPtrTypeMap, (char*)(const char*)name.mbc_str())) != NULL) {
|
||||
name = wxString(PyString_AsString(item), *wxConvCurrent);
|
||||
}
|
||||
|
||||
// Try the name as-is first
|
||||
sprintf(buff, "%sPtr", (const char*)name.mbc_str());
|
||||
PyObject* classobj = PyDict_GetItemString(wxPython_dict, buff);
|
||||
|
||||
// if not found see if there is a mapped name for it
|
||||
if ( ! classobj) {
|
||||
if ((item = PyDict_GetItemString(wxPyPtrTypeMap, (char*)(const char*)name.mbc_str())) != NULL) {
|
||||
name = wxString(PyString_AsString(item), *wxConvCurrent);
|
||||
sprintf(buff, "%sPtr", (const char*)name.mbc_str());
|
||||
classobj = PyDict_GetItemString(wxPython_dict, buff);
|
||||
}
|
||||
}
|
||||
|
||||
return classobj; // returns NULL if not found
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user