summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/include/ext/pool_allocator.h6
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 <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>
* 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<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);
else
{