From cc02aa8af35b85cb564503c7b54e1eae6a6b6169 Mon Sep 17 00:00:00 2001
From: "Tadashi G. Takaoka" <takaoka@google.com>
Date: Wed, 19 Oct 2011 13:04:53 +0900
Subject: [PATCH] Fix missing TypedArray.recycle calls

Change-Id: I333e55b4e7925dac5495e2e73ac57ffcef4fabb4
---
 .../com/android/inputmethod/keyboard/LatinKeyboard.java  | 9 +++++----
 .../inputmethod/keyboard/internal/KeyboardBuilder.java   | 5 ++++-
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java
index c51f1849bb..7620396255 100644
--- a/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java
@@ -38,7 +38,6 @@ import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.SubtypeSwitcher;
 import com.android.inputmethod.latin.Utils;
 
-import java.lang.ref.SoftReference;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Locale;
@@ -329,10 +328,12 @@ public class LatinKeyboard extends Keyboard {
                 Math.max(0, Math.min(y, mOccupiedHeight - 1)));
     }
 
+    private static final int[] ATTR_TEXT_SIZE = { android.R.attr.textSize };
+
     public static int getTextSizeFromTheme(Theme theme, int style, int defValue) {
-        TypedArray array = theme.obtainStyledAttributes(
-                style, new int[] { android.R.attr.textSize });
-        int textSize = array.getDimensionPixelSize(array.getResourceId(0, 0), defValue);
+        final TypedArray a = theme.obtainStyledAttributes(style, ATTR_TEXT_SIZE);
+        final int textSize = a.getDimensionPixelSize(a.getResourceId(0, 0), defValue);
+        a.recycle();
         return textSize;
     }
 }
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
index 613ce587bf..c2e96f877a 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
@@ -323,7 +323,10 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
                 if (TAG_KEYBOARD.equals(tag)) {
                     final TypedArray keyboardAttr = res.obtainAttributes(Xml.asAttributeSet(parser),
                             R.styleable.Keyboard);
-                    return keyboardAttr.getString(R.styleable.Keyboard_keyboardLocale);
+                    final String locale = keyboardAttr.getString(
+                            R.styleable.Keyboard_keyboardLocale);
+                    keyboardAttr.recycle();
+                    return locale;
                 } else {
                     throw new IllegalStartTag(parser, TAG_KEYBOARD);
                 }
-- 
GitLab