diff options
author | Jonathan Beck | 2009-10-18 21:54:33 +0200 |
---|---|---|
committer | Jonathan Beck | 2009-10-18 21:54:33 +0200 |
commit | c17b420a7f65573a84d8acd8a6a92f9d4e0ae696 (patch) | |
tree | 385120c277f2fdd8154a26ac525b56a473f32b7e /src | |
parent | 6f84d30c7bf3999c85c480a7cc297f1b5300054b (diff) | |
download | libplist-c17b420a7f65573a84d8acd8a6a92f9d4e0ae696.tar.gz libplist-c17b420a7f65573a84d8acd8a6a92f9d4e0ae696.tar.bz2 |
Tweak Dictioonary interface a bit.
Diffstat (limited to 'src')
-rw-r--r-- | src/Dictionary.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/Dictionary.cpp b/src/Dictionary.cpp index 79f0afc..a9f85ea 100644 --- a/src/Dictionary.cpp +++ b/src/Dictionary.cpp @@ -229,7 +229,12 @@ Dictionary::iterator Dictionary::End() return _map.end(); } -void Dictionary::Insert(const std::string& key, Node* node) +Dictionary::iterator Dictionary::Find(const std::string& key) +{ + return _map.find(key); +} + +Dictionary::iterator Dictionary::Insert(const std::string& key, Node* node) { if (node) { @@ -237,7 +242,9 @@ void Dictionary::Insert(const std::string& key, Node* node) plist_dict_insert_item(_node, key.c_str(), clone->GetPlist()); delete _map[key]; _map[key] = clone; + return _map.find(key); } + return iterator(NULL); } void Dictionary::Remove(Node* node) @@ -249,6 +256,7 @@ void Dictionary::Remove(Node* node) plist_dict_remove_item(_node, key); std::string skey = key; free(key); + _map.erase(skey); delete node; } } @@ -257,6 +265,7 @@ void Dictionary::Remove(const std::string& key) { plist_dict_remove_item(_node, key.c_str()); delete _map[key]; + _map.erase(key); } }; |