Merge "Also mention our _static_ benchmark binaries." into main
diff --git a/libc/bionic/wctype.cpp b/libc/bionic/wctype.cpp
index 082dada..be0f878 100644
--- a/libc/bionic/wctype.cpp
+++ b/libc/bionic/wctype.cpp
@@ -34,6 +34,7 @@
#include <string.h>
#include <wchar.h>
+#include "bionic/macros.h"
#include "private/icu.h"
enum {
@@ -95,21 +96,12 @@
int iswxdigit_l(wint_t c, locale_t) { return iswxdigit(c); }
int iswctype(wint_t wc, wctype_t char_class) {
- switch (char_class) {
- case WC_TYPE_ALNUM: return iswalnum(wc);
- case WC_TYPE_ALPHA: return iswalpha(wc);
- case WC_TYPE_BLANK: return iswblank(wc);
- case WC_TYPE_CNTRL: return iswcntrl(wc);
- case WC_TYPE_DIGIT: return iswdigit(wc);
- case WC_TYPE_GRAPH: return iswgraph(wc);
- case WC_TYPE_LOWER: return iswlower(wc);
- case WC_TYPE_PRINT: return iswprint(wc);
- case WC_TYPE_PUNCT: return iswpunct(wc);
- case WC_TYPE_SPACE: return iswspace(wc);
- case WC_TYPE_UPPER: return iswupper(wc);
- case WC_TYPE_XDIGIT: return iswxdigit(wc);
- default: return 0;
- }
+ if (char_class < WC_TYPE_ALNUM || char_class > WC_TYPE_XDIGIT) return 0;
+ static int (*fns[])(wint_t) = {
+ iswalnum, iswalpha, iswblank, iswcntrl, iswdigit, iswgraph,
+ iswlower, iswprint, iswpunct, iswspace, iswupper, iswxdigit
+ };
+ return fns[char_class - WC_TYPE_ALNUM](wc);
}
int iswctype_l(wint_t wc, wctype_t char_class, locale_t) {
@@ -144,14 +136,13 @@
wint_t towlower_l(wint_t c, locale_t) { return towlower(c); }
wctype_t wctype(const char* property) {
- static const char* const properties[WC_TYPE_MAX] = {
- "<invalid>",
+ static const char* const properties[WC_TYPE_MAX - 1] = {
"alnum", "alpha", "blank", "cntrl", "digit", "graph",
"lower", "print", "punct", "space", "upper", "xdigit"
};
- for (size_t i = 0; i < WC_TYPE_MAX; ++i) {
+ for (size_t i = 0; i < arraysize(properties); ++i) {
if (!strcmp(properties[i], property)) {
- return static_cast<wctype_t>(i);
+ return static_cast<wctype_t>(WC_TYPE_ALNUM + i);
}
}
return static_cast<wctype_t>(0);
diff --git a/libc/system_properties/prop_area.cpp b/libc/system_properties/prop_area.cpp
index a816a38..9b153ca 100644
--- a/libc/system_properties/prop_area.cpp
+++ b/libc/system_properties/prop_area.cpp
@@ -339,8 +339,7 @@
uint_least32_t left_offset = atomic_load_explicit(&trie->left, memory_order_relaxed);
if (left_offset != 0) {
- const int err = foreach_property(to_prop_trie_node(&trie->left), propfn, cookie);
- if (err < 0) return false;
+ if (!foreach_property(to_prop_trie_node(&trie->left), propfn, cookie)) return false;
}
uint_least32_t prop_offset = atomic_load_explicit(&trie->prop, memory_order_relaxed);
if (prop_offset != 0) {
@@ -350,13 +349,11 @@
}
uint_least32_t children_offset = atomic_load_explicit(&trie->children, memory_order_relaxed);
if (children_offset != 0) {
- const int err = foreach_property(to_prop_trie_node(&trie->children), propfn, cookie);
- if (err < 0) return false;
+ if (!foreach_property(to_prop_trie_node(&trie->children), propfn, cookie)) return false;
}
uint_least32_t right_offset = atomic_load_explicit(&trie->right, memory_order_relaxed);
if (right_offset != 0) {
- const int err = foreach_property(to_prop_trie_node(&trie->right), propfn, cookie);
- if (err < 0) return false;
+ if (!foreach_property(to_prop_trie_node(&trie->right), propfn, cookie)) return false;
}
return true;
@@ -371,6 +368,6 @@
return find_property(root_node(), name, namelen, value, valuelen, true);
}
-bool prop_area::foreach (void (*propfn)(const prop_info* pi, void* cookie), void* cookie) {
+bool prop_area::foreach(void (*propfn)(const prop_info* pi, void* cookie), void* cookie) {
return foreach_property(root_node(), propfn, cookie);
}
diff --git a/tests/Android.bp b/tests/Android.bp
index ee34666..d2a3110 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -361,8 +361,7 @@
cc_test_library {
name: "clang_diagnostic_tests",
cflags: [
- "-Xclang",
- "-verify",
+ "-Xclang -verify",
],
srcs: ["sys_ioctl_diag_test.cpp"],
}