QMetaType: only use sized-delete when available
Sized-delete is C++14 feature, but Clang didn't enable it until version 19.1 because it needs to support different standard libraries, and many of them hadn't implemented support when the code was originally written. https://github.com/llvm/llvm-project/pull/83774 Amends 44b5602536a95b847404b28948ad2bb4a4076f4b. Change-Id: I17fc098d70bfb7474f4324d29ec6f32c91e3a705 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
68562d9b2e
commit
2c6d729be9
@ -77,9 +77,17 @@ struct QMetaTypeDeleter
|
|||||||
void operator()(void *data) const
|
void operator()(void *data) const
|
||||||
{
|
{
|
||||||
if (iface->alignment > __STDCPP_DEFAULT_NEW_ALIGNMENT__) {
|
if (iface->alignment > __STDCPP_DEFAULT_NEW_ALIGNMENT__) {
|
||||||
|
#ifdef __cpp_sized_deallocation
|
||||||
operator delete(data, iface->size, std::align_val_t(iface->alignment));
|
operator delete(data, iface->size, std::align_val_t(iface->alignment));
|
||||||
|
#else
|
||||||
|
operator delete(data, std::align_val_t(iface->alignment));
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
|
#ifdef __cpp_sized_deallocation
|
||||||
operator delete(data, iface->size);
|
operator delete(data, iface->size);
|
||||||
|
#else
|
||||||
|
operator delete(data);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user