From d14781759902c6aa2487e8969a22c085c97a8755 Mon Sep 17 00:00:00 2001 From: Yiwei Zhang Date: Mon, 27 Apr 2026 15:30:02 -0700 Subject: [PATCH] util/os_misc: use ndk api __system_property_get __system_property_get is available since api level 3. There was a glitch back in Android L, but the complete official supported was added back to NDK immediately after the removal, and was patched into the same api level 21. So it's safe to say this api is available all the time. Our helper does not have a default prop value, so __system_property_get is a better fit. Reviewed-by: Dhruv Mark Collins Part-of: --- src/util/os_misc.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/util/os_misc.c b/src/util/os_misc.c index ee2b790be39..d379d31de1a 100644 --- a/src/util/os_misc.c +++ b/src/util/os_misc.c @@ -57,7 +57,7 @@ # define LOG_TAG "MESA" # include # include -# include +# include #elif DETECT_OS_LINUX || DETECT_OS_CYGWIN || DETECT_OS_SOLARIS || DETECT_OS_HURD || DETECT_OS_MANAGARM # include #elif DETECT_OS_OPENBSD || DETECT_OS_FREEBSD @@ -147,8 +147,8 @@ os_log_message(const char *message) * all property names. */ #if ANDROID_API_LEVEL >= 26 -#undef PROPERTY_KEY_MAX -#define PROPERTY_KEY_MAX 128 +#undef PROP_NAME_MAX +#define PROP_NAME_MAX 128 #endif /* ANDROID_API_LEVEL >= 26 */ /** @@ -174,9 +174,9 @@ os_log_message(const char *message) static char * os_get_android_option(const char *name) { - static thread_local char os_android_option_value[PROPERTY_VALUE_MAX]; - char key[PROPERTY_KEY_MAX]; - char *p = key, *end = key + PROPERTY_KEY_MAX; + static thread_local char os_android_option_value[PROP_VALUE_MAX]; + char key[PROP_NAME_MAX]; + char *p = key, *end = key + PROP_NAME_MAX; /* add "mesa." prefix if necessary: */ if (strstr(name, "MESA_") != name) p += strlcpy(p, "mesa.", end - p); @@ -191,12 +191,12 @@ os_get_android_option(const char *name) /* prefixes to search sorted by preference */ const char *prefices[] = { "debug.", "vendor.", "" }; - char full_key[PROPERTY_KEY_MAX]; + char full_key[PROP_NAME_MAX]; int len = 0; for (int i = 0; i < ARRAY_SIZE(prefices); i++) { - strlcpy(full_key, prefices[i], PROPERTY_KEY_MAX); - strlcat(full_key, key, PROPERTY_KEY_MAX); - len = property_get(full_key, os_android_option_value, NULL); + strlcpy(full_key, prefices[i], PROP_NAME_MAX); + strlcat(full_key, key, PROP_NAME_MAX); + len = __system_property_get(full_key, os_android_option_value); if (len > 0) return os_android_option_value; }