[git commit] dd: code shrink

Denys Vlasenko vda.linux at googlemail.com
Tue Aug 20 10:49:28 UTC 2013


commit: http://git.busybox.net/busybox/commit/?id=0ff0b320a2dbb5e0b5fa245ffd9b2648d7026843
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
dd_main                                             1475    1469      -6

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 coreutils/dd.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/coreutils/dd.c b/coreutils/dd.c
index 9299f58..2838f63 100644
--- a/coreutils/dd.c
+++ b/coreutils/dd.c
@@ -395,7 +395,8 @@ int dd_main(int argc UNUSED_PARAM, char **argv)
 			n = 0;
 		}
 		if (flags & FLAG_SWAB) {
-			uint16_t *p16, *end;
+			uint16_t *p16;
+			ssize_t n2;
 
 			/* Our code allows only last read to be odd-sized */
 			if (prev_read_size & 1)
@@ -408,8 +409,8 @@ int dd_main(int argc UNUSED_PARAM, char **argv)
 			 * prints "wqe".
 			 */
 			p16 = (void*) ibuf;
-			end = (void*) (ibuf + (n & ~(ssize_t)1));
-			while (p16 < end) {
+			n2 = (n >> 1);
+			while (--n2 >= 0) {
 				*p16 = bswap_16(*p16);
 				p16++;
 			}


More information about the busybox-cvs mailing list