Commit d4083c80 by Paolo Carlini Committed by Paolo Carlini

re PR libstdc++/31777 (GLIBCXX_FORCE_NEW doesn't always work in pool_allocator)

2007-05-02  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/31777
	* include/ext/pool_allocator.h (__pool_alloc<>::allocate,
	__pool_alloc<>::deallocate): Fix _S_force_new check.

From-SVN: r124355
parent c5b75e95
2007-05-02 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/31777
* include/ext/pool_allocator.h (__pool_alloc<>::allocate,
__pool_alloc<>::deallocate): Fix _S_force_new check.
2007-05-01 Benjamin Kosnik <bkoz@redhat.com> 2007-05-01 Benjamin Kosnik <bkoz@redhat.com>
* 23_containers/requirements/sequences/dr438/deque/*: Move to... * 23_containers/requirements/sequences/dr438/deque/*: Move to...
......
// Allocators -*- C++ -*- // Allocators -*- C++ -*-
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
// Free Software Foundation, Inc. // Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
...@@ -212,7 +212,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -212,7 +212,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
} }
const size_t __bytes = __n * sizeof(_Tp); 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)); __ret = static_cast<_Tp*>(::operator new(__bytes));
else else
{ {
...@@ -241,7 +241,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -241,7 +241,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
if (__builtin_expect(__n != 0 && __p != 0, true)) if (__builtin_expect(__n != 0 && __p != 0, true))
{ {
const size_t __bytes = __n * sizeof(_Tp); const size_t __bytes = __n * sizeof(_Tp);
if (__bytes > static_cast<size_t>(_S_max_bytes) || _S_force_new == 1) if (__bytes > static_cast<size_t>(_S_max_bytes) || _S_force_new > 0)
::operator delete(__p); ::operator delete(__p);
else else
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment