added copy ctor to wxHashTable
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -41,6 +41,11 @@ class WXDLLEXPORT wxHashTable: public wxObject
|
|||||||
wxHashTable(int the_key_type = wxKEY_INTEGER, int size = 1000);
|
wxHashTable(int the_key_type = wxKEY_INTEGER, int size = 1000);
|
||||||
~wxHashTable(void);
|
~wxHashTable(void);
|
||||||
|
|
||||||
|
// copy ctor and assignment operator
|
||||||
|
wxHashTable(const wxHashTable& table) { DoCopy(table); }
|
||||||
|
wxHashTable& operator=(const wxHashTable& table) { Clear(); DoCopy(table); return *this; }
|
||||||
|
void DoCopy(const wxHashTable& table);
|
||||||
|
|
||||||
void Destroy(void); // Robert Roebling
|
void Destroy(void); // Robert Roebling
|
||||||
|
|
||||||
bool Create(int the_key_type = wxKEY_INTEGER, int size = 1000);
|
bool Create(int the_key_type = wxKEY_INTEGER, int size = 1000);
|
||||||
|
@@ -78,6 +78,25 @@ bool wxHashTable::Create(int the_key_type, int size)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void wxHashTable::DoCopy(const wxHashTable& table)
|
||||||
|
{
|
||||||
|
n = table.n;
|
||||||
|
current_position = table.current_position;
|
||||||
|
current_node = NULL; // doesn't matter - Next() will reconstruct it
|
||||||
|
key_type = table.key_type;
|
||||||
|
|
||||||
|
hash_table = new wxList *[n];
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
if (table.hash_table[i] == NULL)
|
||||||
|
hash_table[i] = NULL;
|
||||||
|
else {
|
||||||
|
hash_table[i] = new wxList(key_type);
|
||||||
|
*(hash_table[i]) = *(table.hash_table[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void wxHashTable::Put (long key, long value, wxObject * object)
|
void wxHashTable::Put (long key, long value, wxObject * object)
|
||||||
{
|
{
|
||||||
// Should NEVER be
|
// Should NEVER be
|
||||||
|
Reference in New Issue
Block a user