amassari 2005/01/26 05:29:32 Modified: c/src/xercesc/util XMemory.cpp XMemory.hpp Log: - Removed warning about exception classes having a base class with a protected copy constructor (jira# 1323) - Added placement new and delete to allow XMemory-derived classes to be hosted in STL containers Revision Changes Path 1.13 +10 -1 xml-xerces/c/src/xercesc/util/XMemory.cpp Index: XMemory.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMemory.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- XMemory.cpp 6 Jan 2005 21:39:44 -0000 1.12 +++ XMemory.cpp 26 Jan 2005 13:29:32 -0000 1.13 @@ -69,6 +69,11 @@ return (char*)block + headerSize; } +void* XMemory::operator new(size_t /*size*/, void* ptr) +{ + return ptr; +} + void XMemory::operator delete(void* p) { if (p != 0) @@ -107,6 +112,10 @@ } } +void XMemory::operator delete(void* /*p*/, void* /*ptr*/) +{ +} + #endif XERCES_CPP_NAMESPACE_END 1.8 +21 -13 xml-xerces/c/src/xercesc/util/XMemory.hpp Index: XMemory.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMemory.hpp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- XMemory.hpp 8 Sep 2004 13:56:25 -0000 1.7 +++ XMemory.hpp 26 Jan 2005 13:29:32 -0000 1.8 @@ -73,7 +73,8 @@ #endif /** - * This method overrides placement operator new + * This method defines a custom operator new, that will use the provided + * memory manager to perform the allocation * * @param size The requested memory size * @param memMgr An application's memory manager @@ -81,6 +82,14 @@ void* operator new(size_t size, MemoryManager* memMgr); /** + * This method overrides placement operator new + * + * @param size The requested memory size + * @param ptr The memory location where the object should be allocated + */ + void* operator new(size_t size, void* ptr); + + /** * This method overrides operator delete * * @param p The pointer to the allocated memory @@ -90,12 +99,20 @@ //The Borland compiler is complaining about duplicate overloading of delete #if !defined(XML_BORLAND) /** - * This method provides a matching delete for the placement new + * This method provides a matching delete for the custom operator new * * @param p The pointer to the allocated memory * @param memMgr An application's memory manager */ void operator delete(void* p, MemoryManager* memMgr); + + /** + * This method provides a matching delete for the placement new + * + * @param p The pointer to the allocated memory + * @param ptr The memory location where the object had to be allocated + */ + void operator delete(void* p, void* ptr); #endif //@} @@ -108,15 +125,11 @@ //@{ /** - * Protected default constructor and copy constructor + * Protected default constructor */ XMemory() { } - - XMemory(const XMemory&) - { - } //@} #if defined(XML_BORLAND) @@ -125,11 +138,6 @@ } #endif -private: - // ----------------------------------------------------------------------- - // Unimplemented operators - // ----------------------------------------------------------------------- - XMemory& operator=(const XMemory&); }; XERCES_CPP_NAMESPACE_END
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]