fix bug 57
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Mon, 23 Jul 2007 13:58:53 +0200
changeset 957 426b85bab45f
parent 955 c9be0df711d2
child 958 230f2eee3803
fix bug 57
src/common/buffer.cc
src/common/buffer.h
src/common/packet-metadata.cc
src/common/packet-metadata.h
--- a/src/common/buffer.cc	Fri Jul 20 11:38:16 2007 +0100
+++ b/src/common/buffer.cc	Mon Jul 23 13:58:53 2007 +0200
@@ -31,6 +31,15 @@
 uint32_t Buffer::m_maxTotalAddStart = 0;
 uint32_t Buffer::m_maxTotalAddEnd = 0;
 
+Buffer::BufferDataList::~BufferDataList ()
+{
+  for (BufferDataList::iterator i = begin ();
+       i != end (); i++)
+    {
+      Buffer::Deallocate (*i);
+    }
+}
+
 struct Buffer::BufferData *
 Buffer::Allocate (uint32_t reqSize, uint32_t reqStart)
 {
--- a/src/common/buffer.h	Fri Jul 20 11:38:16 2007 +0100
+++ b/src/common/buffer.h	Mon Jul 23 13:58:53 2007 +0200
@@ -336,7 +336,11 @@
       uint32_t m_dirtySize;
       uint8_t m_data[1];
   };
-  typedef std::vector<struct Buffer::BufferData*> BufferDataList;
+  class BufferDataList : public std::vector<struct Buffer::BufferData*>
+  {
+  public:
+    ~BufferDataList ();
+  };
 
   inline uint8_t *GetStart (void) const;
   static void Recycle (struct Buffer::BufferData *data);
--- a/src/common/packet-metadata.cc	Fri Jul 20 11:38:16 2007 +0100
+++ b/src/common/packet-metadata.cc	Mon Jul 23 13:58:53 2007 +0200
@@ -37,6 +37,14 @@
 PacketMetadata::DataFreeList PacketMetadata::m_freeList;
 bool g_optOne = false;
 
+PacketMetadata::DataFreeList::~DataFreeList ()
+{
+  for (iterator i = begin (); i != end (); i++)
+    {
+      PacketMetadata::Deallocate (*i);
+    }
+}
+
 void 
 PacketMetadata::Enable (void)
 {
--- a/src/common/packet-metadata.h	Fri Jul 20 11:38:16 2007 +0100
+++ b/src/common/packet-metadata.h	Mon Jul 23 13:58:53 2007 +0200
@@ -182,7 +182,11 @@
     uint32_t packetUid;
   };
 
-  typedef std::vector<struct Data *> DataFreeList;
+  class DataFreeList : public std::vector<struct Data *>
+  {
+  public:
+    ~DataFreeList ();
+  };
   
   PacketMetadata ();
   void DoAddHeader (uint32_t uid, uint32_t size);