Fix bug 80 (valgrind error when finalizing PacketMetadata).

This commit is contained in:
Gustavo J. A. M. Carneiro
2007-10-08 17:44:17 +01:00
parent 7a37ee7c30
commit c0ed9be287
2 changed files with 9 additions and 1 deletions

View File

@@ -43,6 +43,7 @@ PacketMetadata::DataFreeList::~DataFreeList ()
{
PacketMetadata::Deallocate (*i);
}
PacketMetadata::m_enable = false;
}
void
@@ -643,6 +644,11 @@ PacketMetadata::Create (uint32_t size)
void
PacketMetadata::Recycle (struct PacketMetadata::Data *data)
{
if (!m_enable)
{
PacketMetadata::Deallocate (data);
return;
}
NS_LOG_LOGIC ("recycle size="<<data->m_size<<", list="<<m_freeList.size ());
NS_ASSERT (data->m_count == 0);
if (m_freeList.size () > 1000 ||

View File

@@ -190,7 +190,9 @@ private:
public:
~DataFreeList ();
};
friend DataFreeList::~DataFreeList ();
PacketMetadata ();
void DoAddHeader (uint32_t uid, uint32_t size);
void DoRemoveHeader (uint32_t uid, uint32_t size);