* include/bits/fstream.tcc (xsgetn): Slightly tweak the recent fix
for 11722: copy can replace move; the common case is __avail == 0.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87501
138bc75d-0d04-0410-961f-
82ee72b054a4
+2004-09-14 Nathan Myers <ncm@cantrip.org>
+
+ * include/bits/fstream.tcc (xsgetn): Slightly tweak the recent fix
+ for 11722: copy can replace move; the common case is __avail == 0.
+
2004-09-14 Paolo Carlini <pcarlini@suse.de>
* include/bits/cpp_type_traits.h: Rename __is_trivially_copyable
{
// First, copy the chars already present in the buffer.
const streamsize __avail = this->egptr() - this->gptr();
- if (__avail == 1)
- *__s = *this->gptr();
- else if (__avail > 1)
- traits_type::move(__s, this->gptr(), __avail);
- __s += __avail;
- this->gbump(__avail);
- __ret += __avail;
- __n -= __avail;
+ if (__avail != 0)
+ {
+ if (__avail == 1)
+ *__s = *this->gptr();
+ else if (__avail > 1)
+ traits_type::copy(__s, this->gptr(), __avail);
+ __s += __avail;
+ this->gbump(__avail);
+ __ret += __avail;
+ __n -= __avail;
+ }
const streamsize __len = _M_file.xsgetn(reinterpret_cast<char*>(__s),
__n);