From c2e1a8a3e2bc2144ad0c4c6009be3ea974aef58f Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 3 Jul 2013 19:44:13 -0400 Subject: Fix some warnings and errors reported by valgrind --- include/extensible.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/extensible.h b/include/extensible.h index bd92e5635..397e3980b 100644 --- a/include/extensible.h +++ b/include/extensible.h @@ -63,12 +63,14 @@ class BaseExtensibleItem : public ExtensibleBase ~BaseExtensibleItem() { - for (std::map::iterator it = items.begin(); it != items.end(); ++it) + while (!items.empty()) { + std::map::iterator it = items.begin(); + Extensible *obj = it->first; T *value = static_cast(it->second); - items.erase(it->first); - it->first->extension_items.erase(this); + obj->extension_items.erase(this); + items.erase(it); delete value; } } @@ -188,7 +190,7 @@ class SerializableExtensibleItem : public PrimitiveExtensibleItem void ExtensibleUnserialize(Extensible *e, Serializable *s, Serialize::Data &data) anope_override { - bool b; + bool b = false; data[this->name] >> b; if (b) this->Set(e); -- cgit