Make external/firebird work with C++14 sized deallocation
...where firebird's replacements of global new/delete would still be called for "new" but not for "delete". Lets hope that always adding the C++14 size_t overloads of operator delete is harmless in all relevant pre-C++14 environments, and only causes harmless warnings like -Wimplicit-exception-spec-mismatch in all relevant C++14 environments. (But why does a /library/ replace global new/delete in the first place?) Change-Id: Ib0b0ad748c6641c07ffed6cec3d6809a1530679f Reviewed-on: https://gerrit.libreoffice.org/19081 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
This commit is contained in:
parent
324212ce01
commit
01fd60b8fa
@ -11,11 +11,14 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,firebird))
|
||||
|
||||
$(eval $(call gb_UnpackedTarball_set_tarball,firebird,$(FIREBIRD_TARBALL)))
|
||||
|
||||
$(eval $(call gb_UnpackedTarball_set_patchlevel,firebird,0))
|
||||
|
||||
$(eval $(call gb_UnpackedTarball_add_patches,firebird,\
|
||||
external/firebird/firebird-rpath.patch.0 \
|
||||
external/firebird/firebird-c++11.patch.1 \
|
||||
external/firebird/firebird-c++11replfn.patch.0 \
|
||||
external/firebird/firebird.disable-ib-util-not-found.patch.1 \
|
||||
external/firebird/firebird-c++14.patch \
|
||||
))
|
||||
|
||||
ifeq ($(OS)-$(COM),WNT-MSC)
|
||||
|
14
external/firebird/firebird-c++14.patch
vendored
Normal file
14
external/firebird/firebird-c++14.patch
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
--- src/common/classes/alloc.cpp
|
||||
+++ src/common/classes/alloc.cpp
|
||||
@@ -2121,3 +2121,11 @@
|
||||
{
|
||||
Firebird::MemoryPool::globalFree(mem);
|
||||
}
|
||||
+void operator delete(void* mem, size_t) throw()
|
||||
+{
|
||||
+ Firebird::MemoryPool::globalFree(mem);
|
||||
+}
|
||||
+void operator delete[](void* mem, size_t) throw()
|
||||
+{
|
||||
+ Firebird::MemoryPool::globalFree(mem);
|
||||
+}
|
Loading…
x
Reference in New Issue
Block a user