| Index: base/android/build_info.cc
|
| diff --git a/base/android/build_info.cc b/base/android/build_info.cc
|
| index c825be01a3c13bd1f981468b62767b944a5a3938..35e041fb192877c11e8ec2570f604261160e0339 100644
|
| --- a/base/android/build_info.cc
|
| +++ b/base/android/build_info.cc
|
| @@ -7,38 +7,28 @@
|
| #include <string>
|
|
|
| #include "base/android/jni_android.h"
|
| -#include "base/android/jni_array.h"
|
| +#include "base/android/jni_string.h"
|
| #include "base/android/scoped_java_ref.h"
|
| #include "base/logging.h"
|
| #include "base/memory/singleton.h"
|
| -#include "base/strings/string_number_conversions.h"
|
| #include "jni/BuildInfo_jni.h"
|
| +
|
| +namespace {
|
| +
|
| +// We are leaking these strings.
|
| +const char* StrDupJString(const base::android::JavaRef<jstring>& java_string) {
|
| + std::string str = ConvertJavaStringToUTF8(java_string);
|
| + return strdup(str.c_str());
|
| +}
|
| +
|
| +} // namespace
|
|
|
| namespace base {
|
| namespace android {
|
|
|
| -namespace {
|
| -
|
| -// We are leaking these strings.
|
| -const char* StrDupParam(const std::vector<std::string>& params, int index) {
|
| - return strdup(params[index].c_str());
|
| -}
|
| -
|
| -int SdkIntParam(const std::vector<std::string>& params, int index) {
|
| - int ret = 0;
|
| - DCHECK(StringToInt(params[index], &ret));
|
| - return ret;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| struct BuildInfoSingletonTraits {
|
| static BuildInfo* New() {
|
| - JNIEnv* env = AttachCurrentThread();
|
| - ScopedJavaLocalRef<jobjectArray> params_objs = Java_BuildInfo_getAll(env);
|
| - std::vector<std::string> params;
|
| - AppendJavaStringArrayToStringVector(env, params_objs.obj(), ¶ms);
|
| - return new BuildInfo(params);
|
| + return new BuildInfo(AttachCurrentThread());
|
| }
|
|
|
| static void Delete(BuildInfo* x) {
|
| @@ -52,21 +42,25 @@
|
| #endif
|
| };
|
|
|
| -BuildInfo::BuildInfo(const std::vector<std::string>& params)
|
| - : brand_(StrDupParam(params, 0)),
|
| - device_(StrDupParam(params, 1)),
|
| - android_build_id_(StrDupParam(params, 2)),
|
| - manufacturer_(StrDupParam(params, 3)),
|
| - model_(StrDupParam(params, 4)),
|
| - sdk_int_(SdkIntParam(params, 5)),
|
| - build_type_(StrDupParam(params, 6)),
|
| - package_label_(StrDupParam(params, 7)),
|
| - package_name_(StrDupParam(params, 8)),
|
| - package_version_code_(StrDupParam(params, 9)),
|
| - package_version_name_(StrDupParam(params, 10)),
|
| - android_build_fp_(StrDupParam(params, 11)),
|
| - gms_version_code_(StrDupParam(params, 12)),
|
| - extracted_file_suffix_(params[13]),
|
| +BuildInfo::BuildInfo(JNIEnv* env)
|
| + : device_(StrDupJString(Java_BuildInfo_getDevice(env))),
|
| + manufacturer_(StrDupJString(Java_BuildInfo_getDeviceManufacturer(env))),
|
| + model_(StrDupJString(Java_BuildInfo_getDeviceModel(env))),
|
| + brand_(StrDupJString(Java_BuildInfo_getBrand(env))),
|
| + android_build_id_(StrDupJString(Java_BuildInfo_getAndroidBuildId(env))),
|
| + android_build_fp_(
|
| + StrDupJString(Java_BuildInfo_getAndroidBuildFingerprint(env))),
|
| + gms_version_code_(StrDupJString(Java_BuildInfo_getGMSVersionCode(env))),
|
| + package_version_code_(
|
| + StrDupJString(Java_BuildInfo_getPackageVersionCode(env))),
|
| + package_version_name_(
|
| + StrDupJString(Java_BuildInfo_getPackageVersionName(env))),
|
| + package_label_(StrDupJString(Java_BuildInfo_getPackageLabel(env))),
|
| + package_name_(StrDupJString(Java_BuildInfo_getPackageName(env))),
|
| + build_type_(StrDupJString(Java_BuildInfo_getBuildType(env))),
|
| + extracted_file_suffix_(
|
| + ConvertJavaStringToUTF8(Java_BuildInfo_getExtractedFileSuffix(env))),
|
| + sdk_int_(Java_BuildInfo_getSdkInt(env)),
|
| java_exception_info_(NULL) {}
|
|
|
| // static
|
|
|