]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/hash.cpp
key handling
[wxWidgets.git] / src / common / hash.cpp
index 09e9b42d1370747ece824d5064e07674e50f0ea3..1c268e7c97c6c1897933073d8873ee00fbc8c9ef 100644 (file)
@@ -143,6 +143,11 @@ void wxHashTableLong::Init(size_t size)
     m_count = 0;
 }
 
+void wxHashTableLong::Create(size_t size)
+{
+    Init(size);
+}
+
 void wxHashTableLong::Destroy()
 {
     for ( size_t n = 0; n < m_hashSize; n++ )
@@ -365,6 +370,7 @@ bool wxHashTable::Create(int the_key_type, int size)
 void wxHashTable::DoCopy(const wxHashTable& table)
 {
   n = table.n;
+  m_count = table.m_count;
   current_position = table.current_position;
   current_node = NULL; // doesn't matter - Next() will reconstruct it
   key_type = table.key_type;
@@ -408,7 +414,7 @@ void wxHashTable::Put (long key, const wxChar *value, wxObject * object)
 
   if (!hash_table[position])
   {
-    hash_table[position] = new wxList (wxKEY_INTEGER);
+    hash_table[position] = new wxList (wxKEY_STRING);
     if (m_deleteContents) hash_table[position]->DeleteContents(TRUE);
   }
 
@@ -676,11 +682,14 @@ void wxHashTable::DeleteContents (bool flag)
 
 void wxHashTable::Clear ()
 {
-  int i;
-  for (i = 0; i < n; i++)
+    int i;
+    if (hash_table)
     {
-      if (hash_table[i])
-        hash_table[i]->Clear ();
+        for (i = 0; i < n; i++)
+        {
+            if (hash_table[i])
+                hash_table[i]->Clear ();
+        }
     }
   m_count = 0;
 }