From 148ebf98edb498d786f4c1107ec116e1afdf9541 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 22 Aug 2020 00:57:25 -0400 Subject: [PATCH] Use __builtin_expect in a few places utf8 is extremely rare in the strings we see in font configuration, so this seems to be a good case for __builtin_expect. --- src/fcstr.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/fcstr.c b/src/fcstr.c index dc9940a..f1f75dc 100644 --- a/src/fcstr.c +++ b/src/fcstr.c @@ -164,7 +164,7 @@ FcStrCaseWalkerNextNonDelim (FcCaseWalker *w, const char *delims) { FcChar8 r; - if (w->read) + if (__builtin_expect (w->read != NULL, 0)) { if ((r = *w->read++)) return r; @@ -175,7 +175,7 @@ FcStrCaseWalkerNextNonDelim (FcCaseWalker *w, const char *delims) r = *w->src++; } while (r != 0 && delims && strchr (delims, r)); - if ((r & 0xc0) == 0xc0) + if (__builtin_expect ((r & 0xc0) == 0xc0, 0)) return FcStrCaseWalkerLong (w, r); if ('A' <= r && r <= 'Z') r = r - 'A' + 'a'; @@ -187,7 +187,7 @@ FcStrCaseWalkerNextNonBlank (FcCaseWalker *w) { FcChar8 r; - if (w->read) + if (__builtin_expect (w->read != NULL, 0)) { if ((r = *w->read++)) return r; @@ -198,7 +198,7 @@ FcStrCaseWalkerNextNonBlank (FcCaseWalker *w) r = *w->src++; } while (r == ' '); - if ((r & 0xc0) == 0xc0) + if (__builtin_expect ((r & 0xc0) == 0xc0, 0)) return FcStrCaseWalkerLong (w, r); if ('A' <= r && r <= 'Z') r = r - 'A' + 'a'; @@ -210,7 +210,7 @@ FcStrCaseWalkerNext (FcCaseWalker *w) { FcChar8 r; - if (w->read) + if (__builtin_expect (w->read != NULL, 0)) { if ((r = *w->read++)) return r; @@ -219,7 +219,7 @@ FcStrCaseWalkerNext (FcCaseWalker *w) r = *w->src++; - if ((r & 0xc0) == 0xc0) + if (__builtin_expect ((r & 0xc0) == 0xc0, 0)) return FcStrCaseWalkerLong (w, r); if ('A' <= r && r <= 'Z') r = r - 'A' + 'a';