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]