mirror of
https://github.com/dashr9230/SA-MP.git
synced 2024-12-22 14:37:29 +08:00
68 lines
1.5 KiB
C++
68 lines
1.5 KiB
C++
|
/// \file
|
||
|
///
|
||
|
/// This file is part of RakNet Copyright 2003 Kevin Jenkins.
|
||
|
///
|
||
|
/// Usage of RakNet is subject to the appropriate license agreement.
|
||
|
/// Creative Commons Licensees are subject to the
|
||
|
/// license found at
|
||
|
/// http://creativecommons.org/licenses/by-nc/2.5/
|
||
|
/// Single application licensees are subject to the license found at
|
||
|
/// http://www.rakkarsoft.com/SingleApplicationLicense.html
|
||
|
/// Custom license users are subject to the terms therein.
|
||
|
/// GPL license users are subject to the GNU General Public
|
||
|
/// License as published by the Free
|
||
|
/// Software Foundation; either version 2 of the License, or (at your
|
||
|
/// option) any later version.
|
||
|
|
||
|
#include "InternalPacketPool.h"
|
||
|
#include <assert.h>
|
||
|
|
||
|
InternalPacketPool::InternalPacketPool()
|
||
|
{
|
||
|
// Speed things up by not reallocating at runtime when a mutex is locked.
|
||
|
pool.ClearAndForceAllocation( 64 );
|
||
|
unsigned i;
|
||
|
for (i=0; i < 64; i++)
|
||
|
pool.Push(new InternalPacket);
|
||
|
}
|
||
|
|
||
|
InternalPacketPool::~InternalPacketPool()
|
||
|
{
|
||
|
ClearPool();
|
||
|
}
|
||
|
|
||
|
void InternalPacketPool::ClearPool( void )
|
||
|
{
|
||
|
while ( pool.Size() )
|
||
|
delete pool.Pop();
|
||
|
}
|
||
|
/*
|
||
|
InternalPacket* InternalPacketPool::GetPointer( void )
|
||
|
{
|
||
|
if ( pool.Size() )
|
||
|
return pool.Pop();
|
||
|
return new InternalPacket;
|
||
|
|
||
|
}
|
||
|
*/
|
||
|
|
||
|
void InternalPacketPool::ReleasePointer( InternalPacket *p )
|
||
|
{
|
||
|
if ( p == 0 )
|
||
|
{
|
||
|
// Releasing a null pointer?
|
||
|
#ifdef _DEBUG
|
||
|
assert( 0 );
|
||
|
#endif
|
||
|
return ;
|
||
|
}
|
||
|
|
||
|
#ifdef _DEBUG
|
||
|
p->data=0;
|
||
|
#endif
|
||
|
//poolMutex.Lock();
|
||
|
pool.Push( p );
|
||
|
//poolMutex.Unlock();
|
||
|
}
|
||
|
|