]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/hashmap.h
fixed Cygwin compilation (there's no _get_osfhandle)
[wxWidgets.git] / include / wx / hashmap.h
index 8cc00b57b974d9e4a4adbf1b9b3092e2449929c2..b8689b86f6e9f7bc151fbedfde44f4e79f27e930 100644 (file)
@@ -101,6 +101,10 @@ protected:
     {
         return (void **)calloc(sz, sizeof(void*));
     }
     {
         return (void **)calloc(sz, sizeof(void*));
     }
+    static void FreeTable(void *table)
+    {
+        free(table);
+    }
 };
 
 #define _WX_DECLARE_HASHTABLE( VALUE_T, KEY_T, HASH_T, KEY_EX_T, KEY_EQ_T, CLASSNAME, CLASSEXP, SHOULD_GROW, SHOULD_SHRINK ) \
 };
 
 #define _WX_DECLARE_HASHTABLE( VALUE_T, KEY_T, HASH_T, KEY_EX_T, KEY_EQ_T, CLASSNAME, CLASSEXP, SHOULD_GROW, SHOULD_SHRINK ) \
@@ -248,7 +252,7 @@ public: \
     { \
         clear(); \
  \
     { \
         clear(); \
  \
-        free(m_table); \
+        FreeTable(m_table); \
     } \
  \
     hasher hash_funct() { return m_hasher; } \
     } \
  \
     hasher hash_funct() { return m_hasher; } \
@@ -379,7 +383,7 @@ protected: \
                        this, (_wxHashTable_NodeBase**)m_table, \
                        (BucketFromNode)GetBucketForNode,\
                        (ProcessNode)&DummyProcessNode ); \
                        this, (_wxHashTable_NodeBase**)m_table, \
                        (BucketFromNode)GetBucketForNode,\
                        (ProcessNode)&DummyProcessNode ); \
-        free(srcTable); \
+        FreeTable(srcTable); \
     } \
  \
     /* this must be called _after_ m_table has been cleaned */ \
     } \
  \
     /* this must be called _after_ m_table has been cleaned */ \
@@ -433,8 +437,8 @@ public: \
 };
 
 // grow/shrink predicates
 };
 
 // grow/shrink predicates
-inline bool never_grow( size_t, size_t ) { return FALSE; }
-inline bool never_shrink( size_t, size_t ) { return FALSE; }
+inline bool never_grow( size_t, size_t ) { return false; }
+inline bool never_shrink( size_t, size_t ) { return false; }
 inline bool grow_lf70( size_t buckets, size_t items )
 {
     return float(items)/float(buckets) >= 0.85;
 inline bool grow_lf70( size_t buckets, size_t items )
 {
     return float(items)/float(buckets) >= 0.85;
@@ -512,12 +516,10 @@ class WXDLLIMPEXP_BASE wxPointerHash
 public:
     wxPointerHash() { }
 
 public:
     wxPointerHash() { }
 
-    // TODO: this might not work well on architectures with 64 bit pointers but
-    //       32 bit longs, we should use % ULONG_MAX there
 #if wxUSE_STL && defined(HAVE_STL_HASH_MAP)
     size_t operator()( const void* k ) const { return (size_t)k; }
 #else
 #if wxUSE_STL && defined(HAVE_STL_HASH_MAP)
     size_t operator()( const void* k ) const { return (size_t)k; }
 #else
-    unsigned long operator()( const void* k ) const { return (unsigned long)wxPtrToULong(k); }
+    wxUIntPtr operator()( const void* k ) const { return wxPtrToUInt(k); }
 #endif
 
     wxPointerHash& operator=(const wxPointerHash&) { return *this; }
 #endif
 
     wxPointerHash& operator=(const wxPointerHash&) { return *this; }