upgraded memory management

This commit is contained in:
Jeff Hill
2002-10-29 19:12:53 +00:00
parent 39b7631c16
commit e5486ab9e1
16 changed files with 186 additions and 152 deletions

View File

@@ -39,8 +39,8 @@
#include "dbChannelIO.h"
#include "dbPutNotifyBlocker.h"
dbChannelIO::dbChannelIO ( cacChannelNotify &notify,
const dbAddr &addrIn, dbServiceIO &serviceIO ) :
dbChannelIO::dbChannelIO ( cacChannelNotify & notify,
const dbAddr & addrIn, dbServiceIO & serviceIO ) :
cacChannel ( notify ), serviceIO ( serviceIO ),
addr ( addrIn )
{
@@ -56,6 +56,14 @@ dbChannelIO::~dbChannelIO ()
this->serviceIO.destroyAllIO ( *this );
}
void dbChannelIO::destroy ()
{
this->serviceIO.destroyChannel ( *this );
// dont access this pointer after above call because
// object nolonger exists
}
cacChannel::ioStatus dbChannelIO::read ( unsigned type,
unsigned long count, cacReadNotify &notify, ioid * )
{
@@ -121,7 +129,21 @@ void dbChannelIO::show ( unsigned level ) const
}
}
void dbChannelIO::operator delete ( void *pCadaver )
void * dbChannelIO::operator new ( size_t size,
tsFreeList < dbChannelIO > & freeList )
{
return freeList.allocate ( size );
}
# ifdef CXX_PLACEMENT_DELETE
void dbChannelIO::operator delete ( void *pCadaver,
tsFreeList < dbChannelIO > & freeList )
{
freeList.release ( pCadaver );
}
#endif
void dbChannelIO::operator delete ( void * )
{
// Visual C++ .net appears to require operator delete if
// placement operator delete is defined? I smell a ms rat