aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-03-29 14:38:27 -0700
committerDavid S. Miller <davem@davemloft.net>2012-03-29 14:38:27 -0700
commit20fde227388fb0c2857ff1793754056b833697fe (patch)
tree182b6e20e1d713ecd91332cf5c5d3a6ecee3269d
parent984a42374ce2055836f580c2240306171757ea72 (diff)
downloadglibc-20fde227388fb0c2857ff1793754056b833697fe.tar
glibc-20fde227388fb0c2857ff1793754056b833697fe.tar.gz
glibc-20fde227388fb0c2857ff1793754056b833697fe.tar.bz2
glibc-20fde227388fb0c2857ff1793754056b833697fe.zip
Remove xsputn small copy optimization.
* libio/fileops.c (_IO_new_file_xsputn): Don't try to optimize small copies by hand.
-rw-r--r--ChangeLog5
-rw-r--r--libio/fileops.c19
2 files changed, 9 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 165a178076..ec220266a4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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]
diff --git a/libio/fileops.c b/libio/fileops.c
index 95e09b4400..a2e8dacd77 100644
--- a/libio/fileops.c
+++ b/libio/fileops.c
@@ -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)