X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/debe6624c1e9d4bf3243381153d1e173c849bcd8..4bc67cc550bcd9d5f93f88ae22a4f6ac7fafb5f7:/src/common/hash.cpp?ds=sidebyside diff --git a/src/common/hash.cpp b/src/common/hash.cpp index 3ba92c80ca..69b17fd56e 100644 --- a/src/common/hash.cpp +++ b/src/common/hash.cpp @@ -37,29 +37,36 @@ wxHashTable::wxHashTable (int the_key_type, int size) { n = size; current_position = -1; - current_node = NULL; + current_node = (wxNode *) NULL; key_type = the_key_type; hash_table = new wxList *[size]; int i; for (i = 0; i < size; i++) - hash_table[i] = NULL; + hash_table[i] = (wxList *) NULL; } wxHashTable::~wxHashTable (void) { + Destroy(); +} + +void wxHashTable::Destroy(void) +{ + if (!hash_table) return; int i; for (i = 0; i < n; i++) if (hash_table[i]) delete hash_table[i]; delete[] hash_table; + hash_table = NULL; } bool wxHashTable::Create(int the_key_type, int size) { n = size; current_position = -1; - current_node = NULL; + current_node = (wxNode *) NULL; key_type = the_key_type; if (hash_table) @@ -67,7 +74,7 @@ bool wxHashTable::Create(int the_key_type, int size) hash_table = new wxList *[size]; int i; for (i = 0; i < size; i++) - hash_table[i] = NULL; + hash_table[i] = (wxList *) NULL; return TRUE; } @@ -132,14 +139,14 @@ wxObject *wxHashTable::Get (long key, long value) const int position = (int) (k % n); if (!hash_table[position]) - return NULL; + return (wxObject *) NULL; else { wxNode *node = hash_table[position]->Find (value); if (node) return node->Data (); else - return NULL; + return (wxObject *) NULL; } } @@ -152,14 +159,14 @@ wxObject *wxHashTable::Get (long key, const char *value) const int position = (int) (k % n); if (!hash_table[position]) - return NULL; + return (wxObject *) NULL; else { wxNode *node = hash_table[position]->Find (value); if (node) return node->Data (); else - return NULL; + return (wxObject *) NULL; } } @@ -172,7 +179,7 @@ wxObject *wxHashTable::Get (long key) const int position = (int) (k % n); if (!hash_table[position]) - return NULL; + return (wxObject *) NULL; else { wxNode *node = hash_table[position]->Find (k); @@ -185,7 +192,7 @@ wxObject *wxHashTable::Get (const char *key) const int position = (int) (MakeKey (key) % n); if (!hash_table[position]) - return NULL; + return (wxObject *) NULL; else { wxNode *node = hash_table[position]->Find (key); @@ -202,7 +209,7 @@ wxObject *wxHashTable::Delete (long key) int position = (int) (k % n); if (!hash_table[position]) - return NULL; + return (wxObject *) NULL; else { wxNode *node = hash_table[position]->Find (k); @@ -213,7 +220,7 @@ wxObject *wxHashTable::Delete (long key) return data; } else - return NULL; + return (wxObject *) NULL; } } @@ -221,7 +228,7 @@ wxObject *wxHashTable::Delete (const char *key) { int position = (int) (MakeKey (key) % n); if (!hash_table[position]) - return NULL; + return (wxObject *) NULL; else { wxNode *node = hash_table[position]->Find (key); @@ -232,7 +239,7 @@ wxObject *wxHashTable::Delete (const char *key) return data; } else - return NULL; + return (wxObject *) NULL; } } @@ -245,7 +252,7 @@ wxObject *wxHashTable::Delete (long key, int value) int position = (int) (k % n); if (!hash_table[position]) - return NULL; + return (wxObject *) NULL; else { wxNode *node = hash_table[position]->Find (value); @@ -256,7 +263,7 @@ wxObject *wxHashTable::Delete (long key, int value) return data; } else - return NULL; + return (wxObject *) NULL; } } @@ -264,7 +271,7 @@ wxObject *wxHashTable::Delete (long key, const char *value) { int position = (int) (key % n); if (!hash_table[position]) - return NULL; + return (wxObject *) NULL; else { wxNode *node = hash_table[position]->Find (value); @@ -275,7 +282,7 @@ wxObject *wxHashTable::Delete (long key, const char *value) return data; } else - return NULL; + return (wxObject *) NULL; } } @@ -292,12 +299,12 @@ long wxHashTable::MakeKey (const char *string) const void wxHashTable::BeginFind (void) { current_position = -1; - current_node = NULL; + current_node = (wxNode *) NULL; } wxNode *wxHashTable::Next (void) { - wxNode *found = NULL; + wxNode *found = (wxNode *) NULL; bool end = FALSE; while (!end && !found) { @@ -307,7 +314,7 @@ wxNode *wxHashTable::Next (void) if (current_position >= n) { current_position = -1; - current_node = NULL; + current_node = (wxNode *) NULL; end = TRUE; } else