diff --git a/src/xercesc/util/XMemory.cpp b/src/xercesc/util/XMemory.cpp index 08a47c7c8b146a23e4ea41cf63b764665565cea1..e4261885b7ff801b4e14af80e8db28293c89e742 100644 --- a/src/xercesc/util/XMemory.cpp +++ b/src/xercesc/util/XMemory.cpp @@ -69,6 +69,11 @@ void* XMemory::operator new(size_t size, MemoryManager* manager) 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, MemoryManager* manager) } } +void XMemory::operator delete(void* /*p*/, void* /*ptr*/) +{ +} + #endif XERCES_CPP_NAMESPACE_END diff --git a/src/xercesc/util/XMemory.hpp b/src/xercesc/util/XMemory.hpp index 1058b3f4f3a29c223ea7d7a46c7ff11a4879cf3f..9fbbe13afa370f1bbe56109cee6f4ba13d928439 100644 --- a/src/xercesc/util/XMemory.hpp +++ b/src/xercesc/util/XMemory.hpp @@ -73,13 +73,22 @@ public : #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 */ 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 * @@ -90,12 +99,20 @@ public : //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 : //@{ /** - * Protected default constructor and copy constructor + * Protected default constructor */ XMemory() { } - - XMemory(const XMemory&) - { - } //@} #if defined(XML_BORLAND) @@ -125,11 +138,6 @@ protected : } #endif -private: - // ----------------------------------------------------------------------- - // Unimplemented operators - // ----------------------------------------------------------------------- - XMemory& operator=(const XMemory&); }; XERCES_CPP_NAMESPACE_END