aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.3/libstdc++-v3/config/locale/generic/time_members.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.4.3/libstdc++-v3/config/locale/generic/time_members.cc')
-rw-r--r--gcc-4.4.3/libstdc++-v3/config/locale/generic/time_members.cc24
1 files changed, 16 insertions, 8 deletions
diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/generic/time_members.cc b/gcc-4.4.3/libstdc++-v3/config/locale/generic/time_members.cc
index 86c924959..46622944c 100644
--- a/gcc-4.4.3/libstdc++-v3/config/locale/generic/time_members.cc
+++ b/gcc-4.4.3/libstdc++-v3/config/locale/generic/time_members.cc
@@ -43,10 +43,14 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
const tm* __tm) const
{
char* __old = setlocale(LC_ALL, NULL);
- const size_t __llen = strlen(__old) + 1;
- char* __sav = new char[__llen];
- memcpy(__sav, __old, __llen);
- setlocale(LC_ALL, _M_name_timepunct);
+ char* __sav = NULL;
+ if (__old != NULL)
+ {
+ const size_t __llen = strlen(__old) + 1;
+ __sav = new char[__llen];
+ memcpy(__sav, __old, __llen);
+ setlocale(LC_ALL, _M_name_timepunct);
+ }
const size_t __len = strftime(__s, __maxlen, __format, __tm);
setlocale(LC_ALL, __sav);
delete [] __sav;
@@ -128,10 +132,14 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
const tm* __tm) const
{
char* __old = setlocale(LC_ALL, NULL);
- const size_t __llen = strlen(__old) + 1;
- char* __sav = new char[__llen];
- memcpy(__sav, __old, __llen);
- setlocale(LC_ALL, _M_name_timepunct);
+ char* __sav = NULL;
+ if (__old != NULL)
+ {
+ const size_t __llen = strlen(__old) + 1;
+ __sav = new char[__llen];
+ memcpy(__sav, __old, __llen);
+ setlocale(LC_ALL, _M_name_timepunct);
+ }
const size_t __len = wcsftime(__s, __maxlen, __format, __tm);
setlocale(LC_ALL, __sav);
delete [] __sav;