From d4c2ba1d2ef800e7e84a29487c7f60c69dc3ee95 Mon Sep 17 00:00:00 2001 From: Jerome Gaillard Date: Mon, 14 Sep 2020 15:20:23 +0100 Subject: [PATCH] Use English locale for number format in layoutlib Vector drawable path parsing relies on the locale numeric format using '.' as the decimal point. This sets the locale numeric format to English, in case the host locale breaks this assumption. Bug: 167164437 Test: checked manually Change-Id: Iad43f29a1c2b00039f5056f6244b9cf46f89b68c --- core/jni/LayoutlibLoader.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/jni/LayoutlibLoader.cpp b/core/jni/LayoutlibLoader.cpp index 77c1a1097240e..4e50f87c086bf 100644 --- a/core/jni/LayoutlibLoader.cpp +++ b/core/jni/LayoutlibLoader.cpp @@ -17,9 +17,9 @@ #include "jni.h" #include "core_jni_helpers.h" -#include -#include #include +#include +#include #include #include @@ -198,6 +198,8 @@ JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void*) { u_setDataDirectory(path); env->ReleaseStringUTFChars(stringPath, path); + // Use English locale for number format to ensure correct parsing of floats when using strtof + setlocale(LC_NUMERIC, "en_US.UTF-8"); return JNI_VERSION_1_6; }