Mercurial > dedupe
changeset 56:76846cb92b5c
Clean up at exit.
Add getSet function.
| author | Tom Fredrik Blenning Klaussen <bfg@blenning.no> |
|---|---|
| date | Thu, 13 Sep 2012 23:49:18 +0200 |
| parents | 19b2a2d98788 |
| children | c8111de2e0bb |
| files | HuffmanString.cpp HuffmanString.hpp |
| diffstat | 2 files changed, 18 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/HuffmanString.cpp Thu Sep 13 23:47:29 2012 +0200 +++ b/HuffmanString.cpp Thu Sep 13 23:49:18 2012 +0200 @@ -5,13 +5,21 @@ HuffmanString::HuffmanString(const QString& str, HuffmanSet* set) { set = this->set; - if (!set) + if (!set) { set = new HuffmanSet(); + atexit(&atExit); + } this->set = set; key = set->insert(str); } +void HuffmanString::atExit() +{ + delete set; + set = 0; +} + QString HuffmanString::toString() const { return set->value(key); @@ -31,3 +39,8 @@ { return this->toString() == rhs.toString(); } + +HuffmanSet& HuffmanString::getSet() +{ + return *set; +}
--- a/HuffmanString.hpp Thu Sep 13 23:47:29 2012 +0200 +++ b/HuffmanString.hpp Thu Sep 13 23:49:18 2012 +0200 @@ -8,11 +8,15 @@ class HuffmanString { static HuffmanSet* set; HuffmanSet::key_t key; + + static void atExit(); + public: HuffmanString(const QString& str = QString(), HuffmanSet* set = NULL); QString toString() const; operator QString() const; + static HuffmanSet& getSet(); bool operator<(const HuffmanString& rhs) const; bool operator==(const HuffmanString& rhs) const; };
