git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12854
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// to be replaced by dynamic_cast<> in the future
#define wxDynamicCast(obj, className) \
// to be replaced by dynamic_cast<> in the future
#define wxDynamicCast(obj, className) \
- ((obj) && ((obj)->IsKindOf(&className::sm_class##className)) \
- ? (className *)(obj) \
- : (className *)0)
+ (className *) wxCheckDynamicCast((obj), &className::sm_class##className)
// The 'this' pointer is always true, so use this version to cast the this
// pointer and avoid compiler warnings.
// The 'this' pointer is always true, so use this version to cast the this
// pointer and avoid compiler warnings.
+inline wxObject *wxCheckDynamicCast(wxObject *obj, wxClassInfo *classInfo)
+{
+ return obj && obj->GetClassInfo()->IsKindOf(classInfo) ? obj : 0;
+}
+
#ifdef __WXDEBUG__
#ifndef WXDEBUG_NEW
#define WXDEBUG_NEW new(__TFILE__,__LINE__)
#ifdef __WXDEBUG__
#ifndef WXDEBUG_NEW
#define WXDEBUG_NEW new(__TFILE__,__LINE__)