]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/hashmap.h
wxUSE_XML
[wxWidgets.git] / include / wx / hashmap.h
index 621bd6c5288fa3900a2a40d0b9d686ef05da9b41..896cd12db0b54f63edf1572bd100532c381101c4 100644 (file)
 
 #include <stddef.h>             // for ptrdiff_t
 
+#ifdef __WXWINCE__
+typedef int ptrdiff_t;
+#endif
+
 // private
 struct WXDLLIMPEXP_BASE _wxHashTable_NodeBase
 {
@@ -563,5 +567,19 @@ public: \
     _WX_DECLARE_HASH_MAP( void*, VALUE_T, wxPointerHash, wxPointerEqual, \
                           CLASSNAME, class WXDLLEXPORT )
 
+// delete all hash elements
+//
+// NB: the class declaration of the hash elements must be visible from the
+//     place where you use this macro, otherwise the proper destructor may not
+//     be called (a decent compiler should give a warning about it, but don't
+//     count on it)!
+#define WX_CLEAR_HASH_MAP(type, hashmap)                                     \
+    {                                                                        \
+        type::iterator it, en;                                               \
+        for( it = (hashmap).begin(), en = (hashmap).end(); it != en; ++it )  \
+            delete it->second;                                               \
+        (hashmap).clear();                                                   \
+    }
+
 #endif // _WX_HASHMAP_H_