diff options
author | satok <satok@google.com> | 2011-08-26 15:48:50 +0900 |
---|---|---|
committer | satok <satok@google.com> | 2011-08-26 16:00:23 +0900 |
commit | fbedf1a3978d5dfc4a886e4c7107d4bc1923f740 (patch) | |
tree | 177a9b25b72c94b976d15cd6d1da0f622215d91f /services/java/com/android/server/TextServicesManagerService.java | |
parent | 2388a7ba6218f44400ee78016282cb96c02dfc54 (diff) |
Fix NPE in setCurrentSpellCheckerSubtype
Change-Id: I9fce999f91dcccd2f877a0326c4f2e3ac9024f85
Diffstat (limited to 'services/java/com/android/server/TextServicesManagerService.java')
-rw-r--r-- | services/java/com/android/server/TextServicesManagerService.java | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/services/java/com/android/server/TextServicesManagerService.java b/services/java/com/android/server/TextServicesManagerService.java index 5eae45678531..c65f2990cddc 100644 --- a/services/java/com/android/server/TextServicesManagerService.java +++ b/services/java/com/android/server/TextServicesManagerService.java @@ -217,6 +217,9 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { return null; } final int hashCode = Integer.valueOf(subtypeHashCodeStr); + if (hashCode == 0) { + return null; + } for (int i = 0; i < sci.getSubtypeCount(); ++i) { final SpellCheckerSubtype scs = sci.getSubtypeAt(i); if (scs.hashCode() == hashCode) { @@ -416,21 +419,17 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { Slog.w(TAG, "setCurrentSpellCheckerSubtype: " + hashCode); } final SpellCheckerInfo sci = getCurrentSpellChecker(null); - if (sci == null) return; - boolean found = false; - for (int i = 0; i < sci.getSubtypeCount(); ++i) { + int tempHashCode = 0; + for (int i = 0; sci != null && i < sci.getSubtypeCount(); ++i) { if(sci.getSubtypeAt(i).hashCode() == hashCode) { - found = true; + tempHashCode = hashCode; break; } } - if (!found) { - return; - } final long ident = Binder.clearCallingIdentity(); try { Settings.Secure.putString(mContext.getContentResolver(), - Settings.Secure.SELECTED_SPELL_CHECKER_SUBTYPE, String.valueOf(hashCode)); + Settings.Secure.SELECTED_SPELL_CHECKER_SUBTYPE, String.valueOf(tempHashCode)); } finally { Binder.restoreCallingIdentity(ident); } |