]> git.saurik.com Git - wxWidgets.git/commitdiff
To work around harmless memory leaks reported by Visual C++ static runtime libs,...
authorJaakko Salli <jaakko.salli@dnainternet.net>
Sun, 23 Jan 2011 10:13:49 +0000 (10:13 +0000)
committerJaakko Salli <jaakko.salli@dnainternet.net>
Sun, 23 Jan 2011 10:13:49 +0000 (10:13 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66734 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/typeinfo.h

index 9d6ceb437dabbc663992da495bf9e03f9c886d0f..734783af5095242c9bacf20f6754313cf9fbaeeb 100644 (file)
 
 #ifndef wxNO_RTTI
 
+//
+// Let's trust that Visual C++ versions 9.0 and later implement C++
+// RTTI well enough, so we can use it and work around harmless memory
+// leaks reported by the static run-time libraries.
+//
+#if wxCHECK_VISUALC_VERSION(9)
+    #define wxTRUST_CPP_RTTI    1
+#else
+    #define wxTRUST_CPP_RTTI    0
+#endif
+
 #include <typeinfo>
 #include <string.h>
 
 #define WX_DEFINE_TYPEINFO(CLS)
 #define WX_DECLARE_ABSTRACT_TYPEINFO(CLS)
 
+#if wxTRUST_CPP_RTTI
+
+#define wxTypeId    typeid
+
+#else /*  !wxTRUST_CPP_RTTI */
+
 //
 // For improved type-safety, let's make the check using class name
 // comparison. Most modern compilers already do this, but we cannot
@@ -67,8 +84,12 @@ private:
 
 #define wxTypeId(OBJ) wxTypeIdentifier(typeid(OBJ).name())
 
+#endif /*  wxTRUST_CPP_RTTI/!wxTRUST_CPP_RTTI */
+
 #else // if !wxNO_RTTI
 
+#define wxTRUST_CPP_RTTI    0
+
 //
 // When C++ RTTI is not available, we will have to make the type comparison
 // using pointer to a dummy static member function. This will fail if