Assorted trivial optimizations
text data bss dec hex filename
236448 672 19044 256164 3e8a4 strace.before
236360 672 19044 256076 3e84c strace
* file.c (sprintmode): Use smaller static buffer, eliminate strlen call.
(sprinttime): Use smaller static buffer.
(printstat_sparc64): Coalesce two printing calls into one.
(printstat_powerpc32): Likewise.
(printcompat_statfs6): Likewise.
(sys_utime): Do not fetch personality_wordsize[current_personality]
repeatedly - cache it in local variable instead.
* process.c (printargv): Likewise.
* resource.c (sprintrlim): Return const char*, not char*. This allows
to eliminate sprintf(buf, "RLIM_INFINITY"). Use smaller static buffer.
(sprintrlim64): Likewise.
* strace.c (strerror): Use smaller static buffer.
(strsignal): Likewise.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/strace.c b/strace.c
index 977c929..9b026e3 100644
--- a/strace.c
+++ b/strace.c
@@ -1561,7 +1561,7 @@
const char *
strerror(int err_no)
{
- static char buf[64];
+ static char buf[sizeof("Unknown error %d") + sizeof(int)*3];
if (err_no < 1 || err_no >= sys_nerr) {
sprintf(buf, "Unknown error %d", err_no);
@@ -1584,7 +1584,7 @@
const char *
strsignal(int sig)
{
- static char buf[64];
+ static char buf[sizeof("Unknown signal %d") + sizeof(int)*3];
if (sig < 1 || sig >= NSIG) {
sprintf(buf, "Unknown signal %d", sig);