[klibc] [klibc:master] Make asprintf() a simple wrapper around vasprintf()

klibc-bot for H. Peter Anvin hpa at zytor.com
Mon Feb 1 01:57:02 PST 2016


Commit-ID:  17fabd540aeb5019909a024243c6d26610cab307
Gitweb:     http://git.kernel.org/?p=libs/klibc/klibc.git;a=commit;h=17fabd540aeb5019909a024243c6d26610cab307
Author:     H. Peter Anvin <hpa at zytor.com>
AuthorDate: Mon, 1 Feb 2016 01:55:04 -0800
Committer:  H. Peter Anvin <hpa at zytor.com>
CommitDate: Mon, 1 Feb 2016 01:55:04 -0800

[klibc] Make asprintf() a simple wrapper around vasprintf()

Since we have vasprintf() anyway, save about a hundred bytes (on
x86-64) by making asprintf() a typical stdarg wrapper function.

Signed-off-by: H. Peter Anvin <hpa at zytor.com>

---
 usr/klibc/asprintf.c | 13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/usr/klibc/asprintf.c b/usr/klibc/asprintf.c
index a3f5f00..ce3aa76 100644
--- a/usr/klibc/asprintf.c
+++ b/usr/klibc/asprintf.c
@@ -8,22 +8,13 @@
 
 int asprintf(char **bufp, const char *format, ...)
 {
-	va_list ap, ap1;
+	va_list ap;
 	int rv;
 	int bytes;
 	char *p;
 
 	va_start(ap, format);
-	va_copy(ap1, ap);
-
-	bytes = vsnprintf(NULL, 0, format, ap1) + 1;
-	va_end(ap1);
-
-	*bufp = p = malloc(bytes);
-	if (!p)
-		return -1;
-
-	rv = vsnprintf(p, bytes, format, ap);
+	rv = vasprintf(bufp, format, ap);
 	va_end(ap);
 
 	return rv;


More information about the klibc mailing list