summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2013-02-15 14:22:23 -0500
committerAdam <Adam@anope.org>2013-02-15 19:01:46 -0500
commitd9c18a6072521bb44418830d2ba1cda14389af20 (patch)
tree2163f6ba24b315a54a15f6419c194fc2236a1455 /src
parent73099b82e8619a87f894a0f787a582ee973bd177 (diff)
Store hashes of the last commit instead of the last commit
Diffstat (limited to 'src')
-rw-r--r--src/serialize.cpp19
1 files changed, 6 insertions, 13 deletions
diff --git a/src/serialize.cpp b/src/serialize.cpp
index 8828965b5..ee300a441 100644
--- a/src/serialize.cpp
+++ b/src/serialize.cpp
@@ -35,12 +35,7 @@ void Serialize::RegisterTypes()
memo("Memo", Memo::Unserialize), xline("XLine", XLine::Unserialize);
}
-Serializable::Serializable() : last_commit(NULL), last_commit_time(0), id(0)
-{
- throw CoreException("Default Serializable constructor?");
-}
-
-Serializable::Serializable(const Anope::string &serialize_type) : last_commit(NULL), last_commit_time(0), id(0)
+Serializable::Serializable(const Anope::string &serialize_type) : last_commit(0), last_commit_time(0), id(0)
{
if (SerializableItems == NULL)
SerializableItems = new std::list<Serializable *>();
@@ -54,7 +49,7 @@ Serializable::Serializable(const Anope::string &serialize_type) : last_commit(NU
FOREACH_MOD(I_OnSerializableConstruct, OnSerializableConstruct(this));
}
-Serializable::Serializable(const Serializable &other) : last_commit(NULL), last_commit_time(0), id(0)
+Serializable::Serializable(const Serializable &other) : last_commit(0), last_commit_time(0), id(0)
{
SerializableItems->push_back(this);
this->s_iter = SerializableItems->end();
@@ -70,7 +65,6 @@ Serializable::~Serializable()
FOREACH_MOD(I_OnSerializableDestruct, OnSerializableDestruct(this));
SerializableItems->erase(this->s_iter);
- delete last_commit;
}
Serializable &Serializable::operator=(const Serializable &)
@@ -87,15 +81,14 @@ void Serializable::QueueUpdate()
FOREACH_MOD(I_OnSerializeCheck, OnSerializeCheck(this->GetSerializableType()));
}
-bool Serializable::IsCached(Serialize::Data *data)
+bool Serializable::IsCached(Serialize::Data &data)
{
- return this->last_commit && this->last_commit->IsEqual(data);
+ return this->last_commit == data.Hash();
}
-void Serializable::UpdateCache(Serialize::Data *data)
+void Serializable::UpdateCache(Serialize::Data &data)
{
- delete this->last_commit;
- this->last_commit = data;
+ this->last_commit = data.Hash();
}
bool Serializable::IsTSCached()