diff options
author | Guillem Jover <guillem@debian.org> | 2016-09-07 04:39:14 +0200 |
---|---|---|
committer | Guillem Jover <guillem@debian.org> | 2016-10-30 06:29:50 +0100 |
commit | 1fc6530294334e421c0da3652181eedd2669433e (patch) | |
tree | 050472903c0e33d47a1d59d2a004f5becc9361f6 | |
parent | 2ca60a4d810dac811613e2c17bb0c28fc523dad4 (diff) | |
download | dpkg-1fc6530294334e421c0da3652181eedd2669433e.tar.gz |
dselect: Add replacement new and delete array operators
-rw-r--r-- | debian/changelog | 1 | ||||
-rw-r--r-- | dselect/cxx-support.cc | 23 |
2 files changed, 24 insertions, 0 deletions
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); +} |