aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.3/libstdc++-v3/config/locale/generic/c_locale.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.4.3/libstdc++-v3/config/locale/generic/c_locale.cc')
-rw-r--r--gcc-4.4.3/libstdc++-v3/config/locale/generic/c_locale.cc36
1 files changed, 24 insertions, 12 deletions
diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/generic/c_locale.cc b/gcc-4.4.3/libstdc++-v3/config/locale/generic/c_locale.cc
index 3b9f1bd42..587dc11de 100644
--- a/gcc-4.4.3/libstdc++-v3/config/locale/generic/c_locale.cc
+++ b/gcc-4.4.3/libstdc++-v3/config/locale/generic/c_locale.cc
@@ -51,10 +51,14 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
{
// Assumes __s formatted for "C" locale.
char* __old = setlocale(LC_ALL, NULL);
- const size_t __len = strlen(__old) + 1;
- char* __sav = new char[__len];
- memcpy(__sav, __old, __len);
- setlocale(LC_ALL, "C");
+ char* __sav = NULL;
+ if (__old != NULL)
+ {
+ const size_t __len = strlen(__old) + 1;
+ __sav = new char[__len];
+ memcpy(__sav, __old, __len);
+ setlocale(LC_ALL, "C");
+ }
char* __sanity;
bool __overflow = false;
@@ -116,10 +120,14 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
{
// Assumes __s formatted for "C" locale.
char* __old = setlocale(LC_ALL, NULL);
- const size_t __len = strlen(__old) + 1;
- char* __sav = new char[__len];
- memcpy(__sav, __old, __len);
- setlocale(LC_ALL, "C");
+ char* __sav = NULL;
+ if (__old != NULL)
+ {
+ const size_t __len = strlen(__old) + 1;
+ __sav = new char[__len];
+ memcpy(__sav, __old, __len);
+ setlocale(LC_ALL, "C");
+ }
char* __sanity;
#if !__DBL_HAS_INFINITY__
@@ -161,10 +169,14 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
{
// Assumes __s formatted for "C" locale.
char* __old = setlocale(LC_ALL, NULL);
- const size_t __len = strlen(__old) + 1;
- char* __sav = new char[__len];
- memcpy(__sav, __old, __len);
- setlocale(LC_ALL, "C");
+ char* __sav = NULL;
+ if (__old != NULL)
+ {
+ const size_t __len = strlen(__old) + 1;
+ __sav = new char[__len];
+ memcpy(__sav, __old, __len);
+ setlocale(LC_ALL, "C");
+ }
#if !__LDBL_HAS_INFINITY__
errno = 0;