document ms compiler problems with placement delete
This commit is contained in:
@@ -278,8 +278,13 @@ void CASG::exception ( int status, const char *pContext,
|
||||
|
||||
void CASG::operator delete ( void * pCadaver )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -248,8 +248,13 @@ void bhe::unregisterIIU ( tcpiiu & iiu )
|
||||
|
||||
void bhe::operator delete ( void * )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete?" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
void * bheFreeStore::allocate ( size_t size )
|
||||
|
||||
@@ -133,8 +133,13 @@ void comBuf::throwInsufficentBytesException ()
|
||||
void comBuf::operator delete ( void *pCadaver )
|
||||
throw ( std::logic_error )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
comBufMemoryManager::~comBufMemoryManager () {}
|
||||
|
||||
@@ -73,8 +73,13 @@ void getCallback::exception (
|
||||
|
||||
void getCallback::operator delete ( void *pCadaver )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -90,7 +90,12 @@ void getCopy::show ( unsigned level ) const
|
||||
|
||||
void getCopy::operator delete ( void *pCadaver )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
|
||||
@@ -62,7 +62,12 @@ void msgForMultiplyDefinedPV::ioCompletionNotify ( const char * pHostNameRej )
|
||||
|
||||
void msgForMultiplyDefinedPV::operator delete ( void *pCadaver )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
|
||||
@@ -86,8 +86,13 @@ void nciu::destroy ()
|
||||
|
||||
void nciu::operator delete ( void * pCadaver )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
void nciu::initiateConnect ()
|
||||
|
||||
@@ -82,8 +82,13 @@ nciu & netReadNotifyIO::channel () const
|
||||
|
||||
void netReadNotifyIO::operator delete ( void * p )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -95,8 +95,13 @@ nciu & netSubscription::channel () const
|
||||
|
||||
void netSubscription::operator delete ( void * p )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -83,7 +83,12 @@ nciu & netWriteNotifyIO::channel () const
|
||||
|
||||
void netWriteNotifyIO::operator delete ( void * p )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
|
||||
@@ -185,7 +185,12 @@ void oldChannelNotify::writeException ( int status, const char *pContext,
|
||||
|
||||
void oldChannelNotify::operator delete ( void *pCadaver )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
|
||||
@@ -72,7 +72,12 @@ void oldSubscription::exception (
|
||||
|
||||
void oldSubscription::operator delete ( void *pCadaver )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
|
||||
@@ -73,7 +73,12 @@ void putCallback::exception (
|
||||
|
||||
void putCallback::operator delete ( void * pCadaver )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
|
||||
@@ -251,8 +251,13 @@ repeaterClient::~repeaterClient ()
|
||||
|
||||
inline void repeaterClient::operator delete ( void *pCadaver )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
inline void * repeaterClient::operator new ( size_t size,
|
||||
|
||||
@@ -94,8 +94,13 @@ void syncGroupReadNotify::show ( unsigned level ) const
|
||||
|
||||
void syncGroupReadNotify::operator delete ( void * p )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
void * syncGroupReadNotify::operator new ( size_t size,
|
||||
|
||||
@@ -88,8 +88,13 @@ void syncGroupWriteNotify::show ( unsigned level ) const
|
||||
|
||||
void syncGroupWriteNotify::operator delete ( void * p )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
void * syncGroupWriteNotify::operator new ( size_t size,
|
||||
|
||||
@@ -46,7 +46,13 @@ resTableIndex ipIgnoreEntry::hash () const
|
||||
|
||||
void ipIgnoreEntry::operator delete ( void * pCadaver )
|
||||
{
|
||||
throw std::logic_error ( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -123,8 +123,11 @@ void dbChannelIO::show ( unsigned level ) const
|
||||
|
||||
void dbChannelIO::operator delete ( void *pCadaver )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -189,6 +189,11 @@ dbSubscriptionIO * dbPutNotifyBlocker::isSubscription ()
|
||||
|
||||
void dbPutNotifyBlocker::operator delete ( void * pCadaver )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
@@ -81,8 +81,13 @@ void dbSubscriptionIO::channelDeleteException ()
|
||||
|
||||
void dbSubscriptionIO::operator delete ( void * pCadaver )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
void * dbSubscriptionIO::operator new ( size_t size,
|
||||
|
||||
@@ -50,7 +50,6 @@ public:
|
||||
|
||||
class epicsTimer { // X aCC 655
|
||||
public:
|
||||
virtual ~epicsTimer () = 0;
|
||||
virtual void destroy () = 0;
|
||||
virtual void start ( epicsTimerNotify &, const epicsTime & ) = 0;
|
||||
virtual void start ( epicsTimerNotify &, double delaySeconds ) = 0;
|
||||
@@ -63,11 +62,8 @@ public:
|
||||
virtual expireInfo getExpireInfo () const = 0;
|
||||
double getExpireDelay ();
|
||||
virtual void show ( unsigned int level ) const = 0;
|
||||
private:
|
||||
void * operator new ( size_t );
|
||||
void * operator new [] ( size_t );
|
||||
void operator delete ( void * );
|
||||
void operator delete [] ( void * );
|
||||
protected:
|
||||
virtual ~epicsTimer () = 0; // protected => delete() must not be called
|
||||
};
|
||||
|
||||
class epicsTimerQueue { // X aCC 655
|
||||
@@ -86,11 +82,6 @@ public:
|
||||
virtual void release () = 0;
|
||||
protected:
|
||||
virtual ~epicsTimerQueueActive () = 0;
|
||||
private:
|
||||
void * operator new ( size_t );
|
||||
void * operator new [] ( size_t );
|
||||
void operator delete ( void * );
|
||||
void operator delete [] ( void * );
|
||||
};
|
||||
|
||||
class epicsTimerQueueNotify { // X aCC 655
|
||||
|
||||
@@ -49,7 +49,7 @@ void timer::destroy ()
|
||||
{
|
||||
timerQueue & queueTmp ( this->queue );
|
||||
this->~timer ();
|
||||
timer::operator delete ( this, queueTmp.timerFreeList ) ;
|
||||
//timer::operator delete ( this, queueTmp.timerFreeList ) ;
|
||||
}
|
||||
|
||||
void timer::start ( epicsTimerNotify & notify, double delaySeconds )
|
||||
@@ -225,13 +225,23 @@ void timer::show ( unsigned int level ) const
|
||||
|
||||
void timer::operator delete ( void * pCadaver )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
void epicsTimerForC::operator delete ( void * pCadaver )
|
||||
{
|
||||
throw std::logic_error
|
||||
( "compiler is confused about placement delete" );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
errlogPrintf ( "%s:%d this compiler is confused about placement delete - memory was probably leaked",
|
||||
__FILE__, __LINE__ );
|
||||
}
|
||||
|
||||
|
||||
@@ -55,6 +55,11 @@ private:
|
||||
epicsTimerNotify * pNotify; // callback
|
||||
void privateStart ( epicsTimerNotify & notify, const epicsTime & );
|
||||
timer & operator = ( const timer & );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
void * operator new ( size_t size );
|
||||
void operator delete ( void * );
|
||||
friend class timerQueue;
|
||||
@@ -75,6 +80,11 @@ private:
|
||||
void * pPrivate;
|
||||
expireStatus expire ( const epicsTime & currentTime );
|
||||
epicsTimerForC & operator = ( const epicsTimerForC & );
|
||||
// Visual C++ .net appears to require operator delete if
|
||||
// placement operator delete is defined? I smell a ms rat
|
||||
// because if I declare placement new and delete, but
|
||||
// comment out the placement delete definition there are
|
||||
// no undefined symbols.
|
||||
void * operator new ( size_t size );
|
||||
void operator delete ( void * );
|
||||
friend class timerQueue;
|
||||
@@ -119,14 +129,13 @@ class timerQueueActive : public epicsTimerQueueActive,
|
||||
public timerQueueActiveMgrPrivate {
|
||||
public:
|
||||
timerQueueActive ( bool okToShare, unsigned priority );
|
||||
virtual ~timerQueueActive () = 0;
|
||||
epicsTimer & createTimer ();
|
||||
epicsTimerForC & createTimerForC ( epicsTimerCallback pCallback, void *pArg );
|
||||
void show ( unsigned int level ) const;
|
||||
bool sharingOK () const;
|
||||
unsigned threadPriority () const;
|
||||
void * operator new ( size_t );
|
||||
void operator delete ( void * );
|
||||
protected:
|
||||
virtual ~timerQueueActive () = 0;
|
||||
private:
|
||||
timerQueue queue;
|
||||
epicsEvent rescheduleEvent;
|
||||
@@ -178,7 +187,7 @@ public:
|
||||
epicsTimerQueuePassiveForC ( epicsTimerQueueRescheduleCallback pCallback, void *pPrivate );
|
||||
void destroy ();
|
||||
protected:
|
||||
virtual ~epicsTimerQueuePassiveForC ();
|
||||
~epicsTimerQueuePassiveForC ();
|
||||
private:
|
||||
epicsTimerQueueRescheduleCallback pCallback;
|
||||
void *pPrivate;
|
||||
|
||||
Reference in New Issue
Block a user