[Patch] Fix libstdc++/11722

Paolo Carlini pcarlini@suse.de
Tue Sep 14 16:18:00 GMT 2004


Nathan Myers wrote:

>Indeed, somehow I misread *this->gptr() as this->sgetc().
>
>But I do think that the most common case must be __avail == 0, so maybe
>
>  if (__avail != 0)
>    {
>      if (__avail == 1)
>        *__s = *this->gptr();
>      else
>        traits_type::copy(__s, this->gptr(), __avail);
>      __s += __avail;
>      this->gbump(__avail);
>      __ret += __avail;
>      __n -= __avail;
>    }
>  
>
Agreed, thanks. I will test and commit this improvement.

>No.  When the user hands over a buffer via setbuf, the streambuf owns
>it, and the user cannot assume anything about what's in it.  We might
>want to document extensions, e.g. guarantees when the buffer is an 
>anonymously-mmapped page sequence, but nothing that allows games like 
>this.  (For example, there might be advantages to putting characters
>at a position in the buffer that matches their position, modulo page
>size, in the file.)
>  
>
Again, agreed, thanks (the above already ackowledges this too)

Paolo.



More information about the Libstdc++ mailing list