*** ../pwlib/src/ptlib/common/object.cxx.orig	Tue Oct 29 00:21:28 2002
--- ../pwlib/src/ptlib/common/object.cxx	Tue Oct 29 00:22:07 2002
***************
*** 27,32 ****
--- 27,38 ----
   * Contributor(s): ______________________________________.
   *
   * $Log: object.cxx,v $
+  * Revision 1.62  2002/10/21 12:52:27  rogerh
+  * Add throw()s to new and delete. Error reported by FreeBSD 5.0 and GCC 3.2.1
+  *
+  * Revision 1.61  2002/10/10 04:43:44  robertj
+  * VxWorks port, thanks Martijn Roest
+  *
   * Revision 1.60  2002/09/06 05:29:42  craigs
   * Reversed order of memory block check on delete to improve performance in
   * Linux debug mode
*************** void PAssertFunc(const char * file, int 
*** 308,332 ****
--- 314,354 ----
  #undef free
  
  
+ #if __GNUC__ >= 3
+ void * operator new(size_t nSize) throw (std::bad_alloc)
+ #else
  void * operator new(size_t nSize)
+ #endif
  {
    return PMemoryHeap::Allocate(nSize, (const char *)NULL, 0, NULL);
  }
  
  
+ #if __GNUC__ >= 3
+ void * operator new[](size_t nSize) throw (std::bad_alloc)
+ #else
  void * operator new[](size_t nSize)
+ #endif
  {
    return PMemoryHeap::Allocate(nSize, (const char *)NULL, 0, NULL);
  }
  
  
+ #if __GNUC__ >= 3
+ void operator delete(void * ptr) throw()
+ #else
  void operator delete(void * ptr)
+ #endif
  {
    PMemoryHeap::Deallocate(ptr, NULL);
  }
  
  
+ #if __GNUC__ >= 3
+ void operator delete[](void * ptr) throw()
+ #else
  void operator delete[](void * ptr)
+ #endif
  {
    PMemoryHeap::Deallocate(ptr, NULL);
  }
*************** void PMemoryHeap::InternalDumpObjectsSin
*** 814,829 ****
--- 836,863 ----
  
  #else // PMEMORY_CHECK
  
+ #ifndef P_VXWORKS
+ 
+ #if __GNUC__ >= 3
+ void * operator new[](size_t nSize) throw (std::bad_alloc)
+ #else
  void * operator new[](size_t nSize)
+ #endif
  {
    return malloc(nSize);
  }
  
+ #if __GNUC__ >= 3
+ void operator delete[](void * ptr) throw ()
+ #else
  void operator delete[](void * ptr)
+ #endif
  {
    free(ptr);
  }
  
+ #endif // !P_VXWORKS
+ 
  #endif // PMEMORY_CHECK
  
  
*************** istream & operator>>(istream & stream, P
*** 1505,1510 ****
--- 1539,1574 ----
  
  
  #endif
+ 
+ 
+ #ifdef P_TORNADO
+ 
+ // the library provided with Tornado 2.0 does not contain implementation 
+ // for the functions defined below, therefor the own implementation
+ 
+ ostream & ostream::operator<<(PInt64 v)
+ {
+   return *this << (long)(v >> 32) << (long)(v & 0xFFFFFFFF);
+ }
+ 
+ 
+ ostream & ostream::operator<<(PUInt64 v)
+ {
+   return *this << (long)(v >> 32) << (long)(v & 0xFFFFFFFF);
+ }
+ 
+ istream & istream::operator>>(PInt64 & v)
+ {
+   return *this >> (long)(v >> 32) >> (long)(v & 0xFFFFFFFF);
+ }
+ 
+ 
+ istream & istream::operator>>(PUInt64 & v)
+ {
+   return *this >> (long)(v >> 32) >> (long)(v & 0xFFFFFFFF);
+ }
+ 
+ #endif // P_TORNADO
  
  
  // End Of File ///////////////////////////////////////////////////////////////
