From 1fc6530294334e421c0da3652181eedd2669433e Mon Sep 17 00:00:00 2001 From: Guillem Jover Date: Wed, 7 Sep 2016 04:39:14 +0200 Subject: dselect: Add replacement new and delete array operators --- debian/changelog | 1 + dselect/cxx-support.cc | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/debian/changelog b/debian/changelog index 80b2582a7..7c5edfb0f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -41,6 +41,7 @@ dpkg (1.18.11) UNRELEASED; urgency=medium * Fix free() on uninitialized pointer in error_context_errmsg_format() in libdpkg. Regression introduced in dpkg 1.18.7. Closes: #842004 * Move C++ support code into its own file. + * Add replacement new and delete array operators to C++ support code. * Architecture support: - Add support for AIX operating system. * Portability: diff --git a/dselect/cxx-support.cc b/dselect/cxx-support.cc index 235a4a761..d850ed591 100644 --- a/dselect/cxx-support.cc +++ b/dselect/cxx-support.cc @@ -40,6 +40,17 @@ operator new(size_t size) DPKG_ATTR_THROW(std::bad_alloc) return p; } +extern void * +operator new[](size_t size) DPKG_ATTR_THROW(std::bad_alloc) +{ + void *p; + + p = m_malloc(size); + assert(p); + + return p; +} + extern void operator delete(void *p) DPKG_ATTR_NOEXCEPT { @@ -51,3 +62,15 @@ operator delete(void *p, size_t size) DPKG_ATTR_NOEXCEPT { free(p); } + +extern void +operator delete[](void *a) DPKG_ATTR_NOEXCEPT +{ + free(a); +} + +extern void +operator delete[](void *a, size_t size) DPKG_ATTR_NOEXCEPT +{ + free(a); +} -- cgit v1.2.3