]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
TestFileStoreState: free memory on terminus.
authorJoao Eduardo Luis <jecluis@gmail.com>
Wed, 25 Apr 2012 14:34:39 +0000 (15:34 +0100)
committerJoao Eduardo Luis <jecluis@gmail.com>
Wed, 25 Apr 2012 14:34:39 +0000 (15:34 +0100)
So far, it hasn't triggered any segfault, but I'm not yet convinced there
is no problem whatsoever.

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
src/test/filestore/TestFileStoreState.cc
src/test/filestore/TestFileStoreState.h

index 2d38107d0f962a2a219b44c3971f71aae981af97..13967aa72cd15a012d82d44905e0c2fcb4f25121 100644 (file)
@@ -103,18 +103,18 @@ TestFileStoreState::coll_entry_t *TestFileStoreState::get_coll_at(int pos)
 
 TestFileStoreState::coll_entry_t::~coll_entry_t()
 {
-  /*
   if (m_objects.size() > 0) {
-    for (set<hobject_t*>::iterator it = m_objects.begin();
-        it != m_objects.end(); it++) {
-      hobject_t *obj = *it;
+//    for (set<hobject_t*>::iterator it = m_objects.begin();
+//        it != m_objects.end(); it++) {
+    map<int, hobject_t*>::iterator it = m_objects.begin();
+    for (; it != m_objects.end(); it++) {
+      hobject_t *obj = it->second;
       m_objects.erase(it);
       if (obj) {
         delete obj;
       }
     }
   }
-  */
 }
 
 hobject_t *TestFileStoreState::coll_entry_t::touch_obj(int id)
index 5e42d6ec1a8bf42221844eb119c52d4ff7712c01..0c46adfeddb7cd4924b596b8805fc46e26eee16a 100644 (file)
@@ -92,7 +92,14 @@ public:
     m_max_in_flight(0), m_in_flight(0), m_finished_lock("Finished Lock") {
     m_store.reset(store);
   }
-  ~TestFileStoreState() { }
+  ~TestFileStoreState() { 
+    map<int, coll_entry_t*>::iterator it = m_collections.begin();
+    for (; it != m_collections.end(); it++) {
+       if (it->second)
+           delete it->second;
+       m_collections.erase(it);
+    }
+  }
 
   void init(int colls, int objs);
   void init() {