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
This commit is contained in:
Jerome Gaillard
2020-09-14 15:20:23 +01:00
parent 1570626a6c
commit d4c2ba1d2e

View File

@@ -17,9 +17,9 @@
#include "jni.h"
#include "core_jni_helpers.h"
#include <sstream>
#include <iostream>
#include <unicode/putil.h>
#include <clocale>
#include <sstream>
#include <unordered_map>
#include <vector>
@@ -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;
}