From d4083c80e2c20796636f4b8b85b2b582efe9bb23 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Wed, 2 May 2007 18:37:00 +0000 Subject: [PATCH] re PR libstdc++/31777 (GLIBCXX_FORCE_NEW doesn't always work in pool_allocator) 2007-05-02 Paolo Carlini PR libstdc++/31777 * include/ext/pool_allocator.h (__pool_alloc<>::allocate, __pool_alloc<>::deallocate): Fix _S_force_new check. From-SVN: r124355 --- libstdc++-v3/ChangeLog | 6 ++++++ libstdc++-v3/include/ext/pool_allocator.h | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index beb95ccd2bd..1aee8b0baf8 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2007-05-02 Paolo Carlini + + PR libstdc++/31777 + * include/ext/pool_allocator.h (__pool_alloc<>::allocate, + __pool_alloc<>::deallocate): Fix _S_force_new check. + 2007-05-01 Benjamin Kosnik * 23_containers/requirements/sequences/dr438/deque/*: Move to... diff --git a/libstdc++-v3/include/ext/pool_allocator.h b/libstdc++-v3/include/ext/pool_allocator.h index e78bf21778c..f9dcc7fc88d 100644 --- a/libstdc++-v3/include/ext/pool_allocator.h +++ b/libstdc++-v3/include/ext/pool_allocator.h @@ -1,6 +1,6 @@ // Allocators -*- C++ -*- -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 +// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -212,7 +212,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) } const size_t __bytes = __n * sizeof(_Tp); - if (__bytes > size_t(_S_max_bytes) || _S_force_new == 1) + if (__bytes > size_t(_S_max_bytes) || _S_force_new > 0) __ret = static_cast<_Tp*>(::operator new(__bytes)); else { @@ -241,7 +241,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) if (__builtin_expect(__n != 0 && __p != 0, true)) { const size_t __bytes = __n * sizeof(_Tp); - if (__bytes > static_cast(_S_max_bytes) || _S_force_new == 1) + if (__bytes > static_cast(_S_max_bytes) || _S_force_new > 0) ::operator delete(__p); else { -- 2.30.2