OSDN Git Service

2003-06-18 Paolo Carlini <pcarlini@unitus.it>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 18 Jun 2003 19:13:18 +0000 (19:13 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 18 Jun 2003 19:13:18 +0000 (19:13 +0000)
    Benjamin Kosnik  <bkoz@redhat.com>

* include/std/std_sstream.h (setbuf): Check __n >= 0.
* include/bits/fstream.tcc (setbuf): Tweak.

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

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/fstream.tcc
libstdc++-v3/include/std/std_sstream.h

index fad6a08..ac0426e 100644 (file)
@@ -1,4 +1,10 @@
 2003-06-18  Paolo Carlini  <pcarlini@unitus.it>
+            Benjamin Kosnik  <bkoz@redhat.com>
+
+       * include/std/std_sstream.h (setbuf): Check __n >= 0.
+       * include/bits/fstream.tcc (setbuf): Tweak.
+
+2003-06-18  Paolo Carlini  <pcarlini@unitus.it>
 
        * include/bits/sstream.tcc (seekoff): We can't seek beyond
        _M_out_lim, therefore _M_move_out_cur boils down to simply
index c0ef882..1327588 100644 (file)
@@ -429,7 +429,7 @@ namespace std
     {
       if (!this->is_open() && __s == 0 && __n == 0)
        this->_M_buf_size = 1;
-      else if (__s && __n >= 1)
+      else if (__s && __n > 0)
        {
          // This is implementation-defined behavior, and assumes that
          // an external char_type array of length __n exists and has
index ca7b1e5..a720d35 100644 (file)
@@ -208,12 +208,12 @@ namespace std
       virtual __streambuf_type*
       setbuf(char_type* __s, streamsize __n)
       {
-       if (__s && __n)
+       if (__s && __n >= 0)
          {
            // This is implementation-defined behavior, and assumes
-           // that an external char_type array of length (__s + __n)
-           // exists and has been pre-allocated. If this is not the
-           // case, things will quickly blow up.
+           // that an external char_type array of length __n exists
+           // and has been pre-allocated. If this is not the case,
+           // things will quickly blow up.
            
            // Step 1: Destroy the current internal array.
            _M_string = __string_type(__s, __n);