]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/hash.cpp
key handling
[wxWidgets.git] / src / common / hash.cpp
index 900219c6d1197056c7c3ef23503e024c61b72b9e..1c268e7c97c6c1897933073d8873ee00fbc8c9ef 100644 (file)
@@ -370,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;
@@ -395,7 +396,7 @@ void wxHashTable::Put (long key, long value, wxObject * object)
 
   if (!hash_table[position])
   {
-    hash_table[position] = new wxList (wxKEY_STRING);
+    hash_table[position] = new wxList (wxKEY_INTEGER);
     if (m_deleteContents) hash_table[position]->DeleteContents(TRUE);
   }
 
@@ -413,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);
   }
 
@@ -681,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;
 }