From c8a5f8f292d2df6181d4e2aafe04ef85b0fe2cc8 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Mon, 10 Nov 2008 13:47:12 +0000 Subject: [PATCH] re PR libstdc++/38067 (monetary_members.cc: 4 * call to wrong C++ delete) 2008-11-10 Paolo Carlini 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 | 7 +++++++ libstdc++-v3/config/locale/gnu/monetary_members.cc | 11 ++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 6c99698..a169022 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2008-11-10 Paolo Carlini + + 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 * include/ext/pointer.h: New, add experimental support for non-standard diff --git a/libstdc++-v3/config/locale/gnu/monetary_members.cc b/libstdc++-v3/config/locale/gnu/monetary_members.cc index 28683b5..ea2b4fc 100644 --- a/libstdc++-v3/config/locale/gnu/monetary_members.cc +++ b/libstdc++-v3/config/locale/gnu/monetary_members.cc @@ -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 -- 2.7.4