From c17b420a7f65573a84d8acd8a6a92f9d4e0ae696 Mon Sep 17 00:00:00 2001 From: Jonathan Beck Date: Sun, 18 Oct 2009 21:54:33 +0200 Subject: Tweak Dictioonary interface a bit. --- src/Dictionary.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/Dictionary.cpp') 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); } }; -- cgit v1.1-32-gdbae