Make the range checking of BaseInputConnection#setSelection stricter

With this change, setSelection will not cause java.lang.IndexOutOfBoundsException
even if a negative index is specified.

Bug: 8841916
Change-Id: Ib62a6ba235f80b7495fefb2e5cc2d5357d804310
This commit is contained in:
Yohei Yukawa
2014-01-17 08:59:07 +09:00
parent 432005306d
commit ef0904106d

View File

@@ -484,10 +484,10 @@ public class BaseInputConnection implements InputConnection {
final Editable content = getEditable();
if (content == null) return false;
int len = content.length();
if (start > len || end > len) {
if (start > len || end > len || start < 0 || end < 0) {
// If the given selection is out of bounds, just ignore it.
// Most likely the text was changed out from under the IME,
// the the IME is going to have to update all of its state
// and the IME is going to have to update all of its state
// anyway.
return true;
}