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