diff options
author | Adam <Adam@anope.org> | 2013-02-15 14:22:23 -0500 |
---|---|---|
committer | Adam <Adam@anope.org> | 2013-02-15 19:01:46 -0500 |
commit | d9c18a6072521bb44418830d2ba1cda14389af20 (patch) | |
tree | 2163f6ba24b315a54a15f6419c194fc2236a1455 /src/serialize.cpp | |
parent | 73099b82e8619a87f894a0f787a582ee973bd177 (diff) |
Store hashes of the last commit instead of the last commit
Diffstat (limited to 'src/serialize.cpp')
-rw-r--r-- | src/serialize.cpp | 19 |
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() |