diff options
| -rw-r--r-- | include/plist/Dictionary.h | 3 | ||||
| -rw-r--r-- | src/Dictionary.cpp | 11 | 
2 files changed, 12 insertions, 2 deletions
diff --git a/include/plist/Dictionary.h b/include/plist/Dictionary.h index 6169774..53e95e6 100644 --- a/include/plist/Dictionary.h +++ b/include/plist/Dictionary.h @@ -45,7 +45,8 @@ class Dictionary : public Structure  	Node* operator[](const std::string& key);  	iterator Begin();  	iterator End(); -	void Insert(const std::string& key, Node* node); +	iterator Find(const std::string& key); +	iterator Insert(const std::string& key, Node* node);  	void Remove(Node* node);  	void Remove(const std::string& key); 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);  }  };  | 
