From 6527f742e142a3c95f4c49c473c09e69feae785c Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Thu, 24 Nov 2011 17:46:29 -0500 Subject: [PATCH] Bug 700931 - Avoid using the HARDWARE field on Android SDK versions <8. r=dougt --- widget/src/android/GfxInfo.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/widget/src/android/GfxInfo.cpp b/widget/src/android/GfxInfo.cpp index fd09ede23836..e00fff71408f 100644 --- a/widget/src/android/GfxInfo.cpp +++ b/widget/src/android/GfxInfo.cpp @@ -109,6 +109,10 @@ GfxInfo::GetAdapterDescription(nsAString & aAdapterDescription) if (mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "MANUFACTURER", str)) aAdapterDescription.Append(str); aAdapterDescription.Append(NS_LITERAL_STRING("', Hardware: '")); + PRInt32 version; // the HARDWARE field isn't available on Android SDK < 8 + if (!mozilla::AndroidBridge::Bridge()->GetStaticIntField("android/os/Build$VERSION", "SDK_INT", &version)) + version = 0; + if (version >= 8 && mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "HARDWARE", str)) if (mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "HARDWARE", str)) aAdapterDescription.Append(str); aAdapterDescription.Append(NS_LITERAL_STRING("'")); @@ -189,7 +193,10 @@ NS_IMETHODIMP GfxInfo::GetAdapterVendorID(PRUint32 *aAdapterVendorID) { nsAutoString str; - if (mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "HARDWARE", str)) { + PRInt32 version; // the HARDWARE field isn't available on Android SDK < 8 + if (!mozilla::AndroidBridge::Bridge()->GetStaticIntField("android/os/Build$VERSION", "SDK_INT", &version)) + version = 0; + if (version >= 8 && mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "HARDWARE", str)) { *aAdapterVendorID = HashString(str); return NS_OK; }