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;
 };