fixed a memory leak

This commit is contained in:
Niels 2015-01-21 15:59:52 +01:00
parent bbc45eb4d8
commit d66743b9c2
2 changed files with 4 additions and 0 deletions

View file

@ -1778,6 +1778,7 @@ json::iterator json::find(const char* key)
if (type_ == value_t::object) if (type_ == value_t::object)
{ {
delete result.oi_;
result.oi_ = new object_t::iterator(value_.object->find(key)); result.oi_ = new object_t::iterator(value_.object->find(key));
result.invalid = (*(result.oi_) == value_.object->end()); result.invalid = (*(result.oi_) == value_.object->end());
} }
@ -1791,6 +1792,7 @@ json::const_iterator json::find(const char* key) const
if (type_ == value_t::object) if (type_ == value_t::object)
{ {
delete result.oi_;
result.oi_ = new object_t::const_iterator(value_.object->find(key)); result.oi_ = new object_t::const_iterator(value_.object->find(key));
result.invalid = (*(result.oi_) == value_.object->cend()); result.invalid = (*(result.oi_) == value_.object->cend());
} }

View file

@ -1249,6 +1249,7 @@ json::iterator json::find(const char* key)
if (type_ == value_t::object) if (type_ == value_t::object)
{ {
delete result.oi_;
result.oi_ = new object_t::iterator(value_.object->find(key)); result.oi_ = new object_t::iterator(value_.object->find(key));
result.invalid = (*(result.oi_) == value_.object->end()); result.invalid = (*(result.oi_) == value_.object->end());
} }
@ -1262,6 +1263,7 @@ json::const_iterator json::find(const char* key) const
if (type_ == value_t::object) if (type_ == value_t::object)
{ {
delete result.oi_;
result.oi_ = new object_t::const_iterator(value_.object->find(key)); result.oi_ = new object_t::const_iterator(value_.object->find(key));
result.invalid = (*(result.oi_) == value_.object->cend()); result.invalid = (*(result.oi_) == value_.object->cend());
} }