libstdc++: Fix size passed to operator delete [PR108097]
The number of elements gets stored in _M_capacity so use a separate variable for the number of bytes to allocate. libstdc++-v3/ChangeLog: PR libstdc++/108097 * include/std/stacktrace (basic_stracktrace::_Impl): Do not multiply N by sizeof(value_type) when allocating.
This commit is contained in:
parent
049dccd080
commit
881c6cabce
1 changed files with 4 additions and 2 deletions
|
@ -608,8 +608,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
{
|
||||
if constexpr (is_same_v<allocator_type, allocator<value_type>>)
|
||||
{
|
||||
__n *= sizeof(value_type);
|
||||
void* const __p = _GLIBCXX_OPERATOR_NEW (__n, nothrow_t{});
|
||||
// For std::allocator we use nothrow-new directly so we
|
||||
// don't need to handle bad_alloc exceptions.
|
||||
size_t __nb = __n * sizeof(value_type);
|
||||
void* const __p = _GLIBCXX_OPERATOR_NEW (__nb, nothrow_t{});
|
||||
if (__p == nullptr) [[unlikely]]
|
||||
return nullptr;
|
||||
_M_frames = static_cast<pointer>(__p);
|
||||
|
|
Loading…
Add table
Reference in a new issue