OSDN Git Service

2003-03-07 Paolo Carlini <pcarlini@unitus.it>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 Mar 2003 22:20:18 +0000 (22:20 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 Mar 2003 22:20:18 +0000 (22:20 +0000)
* include/bits/fstream.tcc (_M_convert_to_external):
Set __elen to zero if codecvt::out eventually fails.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@63954 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/fstream.tcc

index 5298239..6359e77 100644 (file)
@@ -1,5 +1,10 @@
 2003-03-07  Paolo Carlini  <pcarlini@unitus.it>
 
+       * include/bits/fstream.tcc (_M_convert_to_external):
+       Set __elen to zero if codecvt::out eventually fails.
+
+2003-03-07  Paolo Carlini  <pcarlini@unitus.it>
+
        PR libstdc++/9182
        * include/bits/fstream.tcc (_M_really_overflow): Check
        for _M_convert_to_external possible failures.
index 484ed7b..568c08c 100644 (file)
@@ -320,8 +320,13 @@ namespace std
                              __iend, __buf, __buf + __blen, __bend);
              if (__r != codecvt_base::error)
                __rlen = __bend - __buf;
-             else 
-               __rlen = 0;
+             else
+               {
+                 __rlen = 0;
+                 // Signal to the caller (_M_really_overflow) that
+                 // codecvt::out eventually failed.
+                 __elen = 0;             
+               }
              if (__rlen)
                {
                  __elen += _M_file.xsputn(__buf, __rlen);