From ca9c3c06137af878607f16573585c72041a4b7bf Mon Sep 17 00:00:00 2001 From: Jean Chalard Date: Mon, 7 Oct 2013 22:31:21 +0900 Subject: [PATCH] Fix a possible IOOB We want to use StringUtils here, but it's full of references to stuff not accessible host-side like JsonReader and TextUtils and SettingsValues :/ Bug: 11061476 Change-Id: I3c0194979833ede283b4f9190335dba5376fe6fc --- .../android/inputmethod/latin/makedict/FusionDictionary.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/java/src/com/android/inputmethod/latin/makedict/FusionDictionary.java b/java/src/com/android/inputmethod/latin/makedict/FusionDictionary.java index be653feec..3bb218bea 100644 --- a/java/src/com/android/inputmethod/latin/makedict/FusionDictionary.java +++ b/java/src/com/android/inputmethod/latin/makedict/FusionDictionary.java @@ -367,10 +367,11 @@ public final class FusionDictionary implements Iterable { * Helper method to convert a String to an int array. */ static int[] getCodePoints(final String word) { - // TODO: this is a copy-paste of the contents of StringUtils.toCodePointArray, + // TODO: this is a copy-paste of the old contents of StringUtils.toCodePointArray, // which is not visible from the makedict package. Factor this code. + final int length = word.length(); + if (length <= 0) return new int[] {}; final char[] characters = word.toCharArray(); - final int length = characters.length; final int[] codePoints = new int[Character.codePointCount(characters, 0, length)]; int codePoint = Character.codePointAt(characters, 0); int dsti = 0;