From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 91665139087 for ; Thu, 29 Dec 2016 02:25:56 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id A3729E0BFA; Thu, 29 Dec 2016 02:25:55 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 7032AE0BFA for ; Thu, 29 Dec 2016 02:25:55 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id DEEC1341648 for ; Thu, 29 Dec 2016 02:25:53 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id E098624F1 for ; Thu, 29 Dec 2016 02:25:51 +0000 (UTC) From: "Mike Frysinger" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Mike Frysinger" Message-ID: <1482965324.b06656ffb20e9dc6da0af92388e0af94e2edac49.vapier@gentoo> Subject: [gentoo-commits] proj/portage-utils:master commit in: /, libq/ X-VCS-Repository: proj/portage-utils X-VCS-Files: libq/xasprintf.c libq/xchdir.c libq/xgetcwd.c libq/xmalloc.c libq/xmkdir.c libq/xreadlink.c libq/xregex.c libq/xstrdup.c libq/xsystem.c porting.h X-VCS-Directories: libq/ / X-VCS-Committer: vapier X-VCS-Committer-Name: Mike Frysinger X-VCS-Revision: b06656ffb20e9dc6da0af92388e0af94e2edac49 X-VCS-Branch: master Date: Thu, 29 Dec 2016 02:25:51 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 4a5ba8eb-2603-4862-bfc6-9f7a8e08d9a6 X-Archives-Hash: 4d6839765eabd9565a16607647a995d4 commit: b06656ffb20e9dc6da0af92388e0af94e2edac49 Author: Mike Frysinger gentoo org> AuthorDate: Wed Dec 28 22:48:44 2016 +0000 Commit: Mike Frysinger gentoo org> CommitDate: Wed Dec 28 22:48:44 2016 +0000 URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=b06656ff start some likely/unlikely helpers libq/xasprintf.c | 2 +- libq/xchdir.c | 2 +- libq/xgetcwd.c | 2 +- libq/xmalloc.c | 8 ++++---- libq/xmkdir.c | 2 +- libq/xreadlink.c | 2 +- libq/xregex.c | 4 ++-- libq/xstrdup.c | 2 +- libq/xsystem.c | 2 +- porting.h | 3 +++ 10 files changed, 16 insertions(+), 13 deletions(-) diff --git a/libq/xasprintf.c b/libq/xasprintf.c index f2f1c58..160223e 100644 --- a/libq/xasprintf.c +++ b/libq/xasprintf.c @@ -25,7 +25,7 @@ #define xasprintf(strp, fmt, args...) \ ({ \ int _ret = asprintf(strp, fmt , ## args); \ - if (_ret == -1) \ + if (unlikely(_ret == -1)) \ err("Out of memory"); \ _ret; \ }) diff --git a/libq/xchdir.c b/libq/xchdir.c index b127e9c..242b04a 100644 --- a/libq/xchdir.c +++ b/libq/xchdir.c @@ -10,6 +10,6 @@ void xchdir(const char *path); void xchdir(const char *path) { - if (chdir(path)) + if (unlikely(chdir(path) != 0)) errp("chdir(%s) failed", path); } diff --git a/libq/xgetcwd.c b/libq/xgetcwd.c index 876e17c..31f531d 100644 --- a/libq/xgetcwd.c +++ b/libq/xgetcwd.c @@ -11,7 +11,7 @@ char *xgetcwd(char *buf, size_t size); char *xgetcwd(char *buf, size_t size) { char *ret = getcwd(buf, size); - if (!ret) + if (unlikely(ret == NULL)) errp("getcwd() failed"); return ret; } diff --git a/libq/xmalloc.c b/libq/xmalloc.c index 207a15a..9a9173d 100644 --- a/libq/xmalloc.c +++ b/libq/xmalloc.c @@ -30,7 +30,7 @@ static void *xmalloc(size_t size) { void *ptr = malloc(size); - if (ptr == NULL) + if (unlikely(ptr == NULL)) err("Out of memory"); return ptr; } @@ -38,7 +38,7 @@ static void *xmalloc(size_t size) static void *xcalloc(size_t nmemb, size_t size) { void *ptr = calloc(nmemb, size); - if (ptr == NULL) + if (unlikely(ptr == NULL)) err("Out of memory"); return ptr; } @@ -46,7 +46,7 @@ static void *xcalloc(size_t nmemb, size_t size) static void *xzalloc(size_t size) { void *ptr = xmalloc(size); - if (ptr == NULL) + if (unlikely(ptr == NULL)) err("Out of memory"); memset(ptr, 0x00, size); return ptr; @@ -55,7 +55,7 @@ static void *xzalloc(size_t size) static void *xrealloc(void *optr, size_t size) { void *ptr = realloc(optr, size); - if (ptr == NULL) + if (unlikely(ptr == NULL)) err("Out of memory"); return ptr; } diff --git a/libq/xmkdir.c b/libq/xmkdir.c index cc428aa..b47d44c 100644 --- a/libq/xmkdir.c +++ b/libq/xmkdir.c @@ -62,7 +62,7 @@ _q_static int rm_rf_at(int dfd, const char *path) if (!strcmp(de->d_name, ".") || !strcmp(de->d_name, "..")) continue; if (unlinkat(subdfd, de->d_name, 0) == -1) { - if (errno != EISDIR) + if (unlikely(errno != EISDIR)) errp("could not unlink %s", de->d_name); rm_rf_at(subdfd, de->d_name); unlinkat(subdfd, de->d_name, AT_REMOVEDIR); diff --git a/libq/xreadlink.c b/libq/xreadlink.c index b580dbd..872264f 100644 --- a/libq/xreadlink.c +++ b/libq/xreadlink.c @@ -11,7 +11,7 @@ ssize_t xreadlink(const char *path, char *buf, size_t bufsiz); ssize_t xreadlink(const char *path, char *buf, size_t bufsiz) { ssize_t ret = readlink(path, buf, bufsiz); - if (ret == -1) + if (unlikely(ret == -1)) errp("readlink(%s) failed", path); return ret; } diff --git a/libq/xregex.c b/libq/xregex.c index 65f0d47..7df928a 100644 --- a/libq/xregex.c +++ b/libq/xregex.c @@ -1,7 +1,7 @@ static int wregcomp(regex_t *preg, const char *regex, int cflags) { int ret = regcomp(preg, regex, cflags); - if (ret) { + if (unlikely(ret)) { char errbuf[256]; regerror(ret, preg, errbuf, sizeof(errbuf)); warn("invalid regexp: %s -- %s\n", regex, errbuf); @@ -11,6 +11,6 @@ static int wregcomp(regex_t *preg, const char *regex, int cflags) static void xregcomp(regex_t *preg, const char *regex, int cflags) { - if (wregcomp(preg, regex, cflags)) + if (unlikely(wregcomp(preg, regex, cflags))) exit(EXIT_FAILURE); } diff --git a/libq/xstrdup.c b/libq/xstrdup.c index dd2c039..6924d21 100644 --- a/libq/xstrdup.c +++ b/libq/xstrdup.c @@ -35,7 +35,7 @@ static char *xstrdup(const char *s) return NULL; t = strdup(s); - if (t == NULL) + if (unlikely(t == NULL)) err("Out of memory"); return t; diff --git a/libq/xsystem.c b/libq/xsystem.c index 71e8306..b4af651 100644 --- a/libq/xsystem.c +++ b/libq/xsystem.c @@ -10,7 +10,7 @@ static void xsystem(const char *command) { - if (system(command)) + if (unlikely(system(command))) errp("system(%s) failed", command); } diff --git a/porting.h b/porting.h index b166bc1..206c6e3 100644 --- a/porting.h +++ b/porting.h @@ -77,4 +77,7 @@ #define CONFIG_EPREFIX "/" #endif +#define likely(x) __builtin_expect((x), 1) +#define unlikely(x) __builtin_expect((x), 0) + #endif