moved the check for correct implementation of wxEvent::Clone() to a unit test from wx startup code

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59742 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-03-22 21:31:34 +00:00
parent ddaf7a11c3
commit 031b101f09
19 changed files with 4662 additions and 4662 deletions

View File

@@ -252,44 +252,6 @@ static bool DoCommonPostInit()
return false;
}
#if defined(__WXDEBUG__)
// check if event classes implement Clone() correctly
// NOTE: the check is done against _all_ event classes which are linked to
// the executable currently running, which are not necessarily all
// wxWidgets event classes.
const wxClassInfo *ci = wxClassInfo::GetFirst();
for (; ci; ci = ci->GetNext())
{
// is this class derived from wxEvent?
if (!ci->IsKindOf(CLASSINFO(wxEvent)) || wxString(ci->GetClassName()) == "wxEvent")
continue;
if (!ci->IsDynamic())
{
wxLogWarning("The event class '%s' should have a DECLARE_DYNAMIC_CLASS macro!",
ci->GetClassName());
continue;
}
// yes; test if it implements Clone() correctly
wxEvent* test = wxDynamicCast(ci->CreateObject(),wxEvent);
if (test == NULL)
{
wxLogWarning("The event class '%s' should have a DECLARE_DYNAMIC_CLASS macro!",
ci->GetClassName());
continue;
}
wxEvent* cloned = test->Clone();
if (!cloned || cloned->GetClassInfo() != ci)
wxLogWarning("The event class '%s' does not correctly implement Clone()!",
ci->GetClassName());
delete cloned;
delete test;
}
#endif
return true;
}