diff --git a/lib/xerces/src/xercesc/internal/MemoryManagerImpl.cpp b/lib/xerces/src/xercesc/internal/MemoryManagerImpl.cpp index 2c2c92864..a44340e6c 100644 --- a/lib/xerces/src/xercesc/internal/MemoryManagerImpl.cpp +++ b/lib/xerces/src/xercesc/internal/MemoryManagerImpl.cpp @@ -26,6 +26,9 @@ #include #include +#include +#include + XERCES_CPP_NAMESPACE_BEGIN MemoryManager* MemoryManagerImpl::getExceptionMemoryManager() @@ -35,13 +38,7 @@ MemoryManager* MemoryManagerImpl::getExceptionMemoryManager() void* MemoryManagerImpl::allocate(XMLSize_t size) { - void* memptr; - try { - memptr = ::operator new(size); - } - catch(...) { - throw OutOfMemoryException(); - } + void* memptr = new(std::nothrow) uint8_t[size]; if(memptr==NULL && size!=0) throw OutOfMemoryException(); return memptr; @@ -49,8 +46,7 @@ void* MemoryManagerImpl::allocate(XMLSize_t size) void MemoryManagerImpl::deallocate(void* p) { - if (p) - ::operator delete(p); + delete[] static_cast(p); } XERCES_CPP_NAMESPACE_END diff --git a/lib/xerces/src/xercesc/util/Base64.cpp b/lib/xerces/src/xercesc/util/Base64.cpp index 9bba500eb..320b46346 100644 --- a/lib/xerces/src/xercesc/util/Base64.cpp +++ b/lib/xerces/src/xercesc/util/Base64.cpp @@ -24,6 +24,8 @@ #include #include +#include + XERCES_CPP_NAMESPACE_BEGIN // --------------------------------------------------------------------------- @@ -97,7 +99,7 @@ static void* getExternalMemory( MemoryManager* const allocator , XMLSize_t const sizeToAllocate) { return allocator ? allocator->allocate(sizeToAllocate) - : ::operator new(sizeToAllocate); + : new uint8_t[sizeToAllocate]; } /*** @@ -107,7 +109,7 @@ static void returnExternalMemory( MemoryManager* const allocator , void* buffer) { allocator ? allocator->deallocate(buffer) - : ::operator delete(buffer); + : delete[] static_cast(buffer); } /** diff --git a/lib/xerces/tests/src/MemHandlerTest/MemoryMonitor.cpp b/lib/xerces/tests/src/MemHandlerTest/MemoryMonitor.cpp index 551af7b49..c2f566f29 100644 --- a/lib/xerces/tests/src/MemHandlerTest/MemoryMonitor.cpp +++ b/lib/xerces/tests/src/MemHandlerTest/MemoryMonitor.cpp @@ -43,7 +43,7 @@ MemoryManager* MemoryMonitor::getExceptionMemoryManager() void* MemoryMonitor::allocate(XMLSize_t size) { - void *key = ::operator new(size); + void *key = new uint8_t[size]; fHashTable->put(key, (unsigned int)size); return key; } @@ -56,7 +56,7 @@ void MemoryMonitor::deallocate(void* p) if (p != 0) { fHashTable->removeKey(p); - ::operator delete(p); + delete[] static_cast(p); } } diff --git a/src/msix/PAL/XML/xerces-c/XmlObject.cpp b/src/msix/PAL/XML/xerces-c/XmlObject.cpp index fa9a98dbd..ba6006b09 100644 --- a/src/msix/PAL/XML/xerces-c/XmlObject.cpp +++ b/src/msix/PAL/XML/xerces-c/XmlObject.cpp @@ -223,7 +223,7 @@ class XercesXMLBytePtr } void InternalRelease() - { delete(m_ptr); + { delete[] m_ptr; m_ptr = nullptr; } @@ -665,4 +665,4 @@ class XercesFactory final : public ComClass ComPtr CreateXmlFactory(IMsixFactory* factory) { return ComPtr::Make(factory); } -} // namespace MSIX \ No newline at end of file +} // namespace MSIX