Fix NPE due to the lack of null-check

The case that was not coverted well is that
CursorAnchorInfoCompatWrapper could be instantiated
with null object. In such situations, we should
do nothing.

BUG: 17682582
Change-Id: I6625a2f0ed8c5580ed9edfe4728f342da77a8e40
This commit is contained in:
Yohei Yukawa 2014-09-29 16:17:52 +09:00
parent be4e0d0e39
commit de12c1bf49
2 changed files with 4 additions and 4 deletions

View file

@ -84,8 +84,8 @@ public final class CursorAnchorInfoCompatWrapper {
} }
@UsedForTesting @UsedForTesting
public static boolean isAvailable() { public boolean isAvailable() {
return sCursorAnchorInfoClass.exists(); return sCursorAnchorInfoClass.exists() && mInstance != null;
} }
private Object mInstance; private Object mInstance;
@ -96,7 +96,7 @@ public final class CursorAnchorInfoCompatWrapper {
@UsedForTesting @UsedForTesting
public static CursorAnchorInfoCompatWrapper fromObject(final Object instance) { public static CursorAnchorInfoCompatWrapper fromObject(final Object instance) {
if (!isAvailable()) { if (!sCursorAnchorInfoClass.exists()) {
return new CursorAnchorInfoCompatWrapper(null); return new CursorAnchorInfoCompatWrapper(null);
} }
return new CursorAnchorInfoCompatWrapper(instance); return new CursorAnchorInfoCompatWrapper(instance);

View file

@ -182,7 +182,7 @@ public class TextDecorator {
private void layoutMain() { private void layoutMain() {
final CursorAnchorInfoCompatWrapper info = mCursorAnchorInfoWrapper; final CursorAnchorInfoCompatWrapper info = mCursorAnchorInfoWrapper;
if (info == null) { if (info == null || !info.isAvailable()) {
cancelLayoutInternalExpectedly("CursorAnchorInfo isn't available."); cancelLayoutInternalExpectedly("CursorAnchorInfo isn't available.");
return; return;
} }