From 501503b7a5b80343c78354e3e4045528198edf80 Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 24 Feb 2013 05:45:20 -0500 Subject: [PATCH] On startup check all object types --- include/serialize.h | 1 + src/init.cpp | 2 ++ src/serialize.cpp | 9 +++++++++ 3 files changed, 12 insertions(+) diff --git a/include/serialize.h b/include/serialize.h index 23c865688..a43046b1e 100644 --- a/include/serialize.h +++ b/include/serialize.h @@ -40,6 +40,7 @@ namespace Serialize }; extern void RegisterTypes(); + extern void CheckTypes(); class Type; template class Checker; diff --git a/src/init.cpp b/src/init.cpp index 445995b46..a419c9f8d 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -460,6 +460,8 @@ void Anope::Init(int ac, char **av) EventReturn MOD_RESULT; FOREACH_RESULT(I_OnLoadDatabase, OnLoadDatabase()); Log() << "Databases loaded"; + + Serialize::CheckTypes(); } /*************************************************************************/ diff --git a/src/serialize.cpp b/src/serialize.cpp index ee300a441..444cf79da 100644 --- a/src/serialize.cpp +++ b/src/serialize.cpp @@ -35,6 +35,15 @@ void Serialize::RegisterTypes() memo("Memo", Memo::Unserialize), xline("XLine", XLine::Unserialize); } +void Serialize::CheckTypes() +{ + for (std::map::const_iterator it = Serialize::Type::GetTypes().begin(), it_end = Serialize::Type::GetTypes().end(); it != it_end; ++it) + { + Serialize::Type *t = it->second; + t->Check(); + } +} + Serializable::Serializable(const Anope::string &serialize_type) : last_commit(0), last_commit_time(0), id(0) { if (SerializableItems == NULL)