re PR libstdc++/38067 (monetary_members.cc: 4 * call to wrong C++ delete)
authorPaolo Carlini <paolo.carlini@oracle.com>
Mon, 10 Nov 2008 13:47:12 +0000 (13:47 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Mon, 10 Nov 2008 13:47:12 +0000 (13:47 +0000)
2008-11-10  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/38067
* config/locale/gnu/monetary_members.cc (moneypunct<>::
_M_initialize_moneypunct(__c_locale, const char*)): Use correct vector
delete for __wcs_ps and __wcs_ns.

From-SVN: r141740

libstdc++-v3/ChangeLog
libstdc++-v3/config/locale/gnu/monetary_members.cc

index 6c99698..a169022 100644 (file)
@@ -1,3 +1,10 @@
+2008-11-10  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR libstdc++/38067
+       * config/locale/gnu/monetary_members.cc (moneypunct<>::
+       _M_initialize_moneypunct(__c_locale, const char*)): Use correct vector
+       delete for __wcs_ps and __wcs_ns.
+
 2008-11-07  Bob Walters  <bob.s.walters@gmail.com>
 
        * include/ext/pointer.h: New, add experimental support for non-standard
index 28683b5..ea2b4fc 100644 (file)
@@ -1,6 +1,7 @@
 // std::moneypunct implementation details, GNU version -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+// Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -455,8 +456,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
            {
              delete _M_data;
              _M_data = 0;
-             delete __wcs_ps;
-             delete __wcs_ns;        
+             delete [] __wcs_ps;
+             delete [] __wcs_ns;             
 #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
              __uselocale(__old);
 #else
@@ -601,8 +602,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
            {
              delete _M_data;
               _M_data = 0;
-             delete __wcs_ps;
-             delete __wcs_ns;        
+             delete [] __wcs_ps;
+             delete [] __wcs_ns;             
 #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
              __uselocale(__old);
 #else