Remove xsputn small copy optimization.

* libio/fileops.c (_IO_new_file_xsputn): Don't try to optimize
	small copies by hand.
This commit is contained in:
David S. Miller 2012-03-29 14:38:27 -07:00
parent 984a42374c
commit 20fde22738
2 changed files with 9 additions and 15 deletions

View File

@ -1,3 +1,8 @@
2012-03-29 David S. Miller <davem@davemloft.net>
* libio/fileops.c (_IO_new_file_xsputn): Don't try to optimize
small copies by hand.
2012-03-28 Siddhesh Poyarekar <siddhesh@redhat.com>
[BZ #13761]

View File

@ -1341,24 +1341,13 @@ _IO_new_file_xsputn (f, data, n)
{
if (count > to_do)
count = to_do;
if (count > 20)
{
#ifdef _LIBC
f->_IO_write_ptr = __mempcpy (f->_IO_write_ptr, s, count);
f->_IO_write_ptr = __mempcpy (f->_IO_write_ptr, s, count);
#else
memcpy (f->_IO_write_ptr, s, count);
f->_IO_write_ptr += count;
memcpy (f->_IO_write_ptr, s, count);
f->_IO_write_ptr += count;
#endif
s += count;
}
else
{
register char *p = f->_IO_write_ptr;
register int i = (int) count;
while (--i >= 0)
*p++ = *s++;
f->_IO_write_ptr = p;
}
s += count;
to_do -= count;
}
if (to_do + must_flush > 0)