Validate custom pointer icons aren't null.
Bug: 33853287
Test: cts
Change-Id: I844a9aec6e37e306a77eee0644a774f6470cf5df
(cherry picked from commit b004b5137e)
This commit is contained in:
committed by
Erik Wolsheimer
parent
1894632864
commit
35068079c8
@@ -78,6 +78,9 @@ status_t android_view_PointerIcon_load(JNIEnv* env, jobject pointerIconObj, jobj
|
||||
|
||||
status_t android_view_PointerIcon_getLoadedIcon(JNIEnv* env, jobject pointerIconObj,
|
||||
PointerIcon* outPointerIcon) {
|
||||
if (!pointerIconObj) {
|
||||
return BAD_VALUE;
|
||||
}
|
||||
outPointerIcon->style = env->GetIntField(pointerIconObj, gPointerIconClassInfo.mType);
|
||||
outPointerIcon->hotSpotX = env->GetFloatField(pointerIconObj, gPointerIconClassInfo.mHotSpotX);
|
||||
outPointerIcon->hotSpotY = env->GetFloatField(pointerIconObj, gPointerIconClassInfo.mHotSpotY);
|
||||
|
||||
@@ -25,6 +25,7 @@ import android.view.Display;
|
||||
import com.android.internal.inputmethod.InputMethodSubtypeHandle;
|
||||
import com.android.internal.os.SomeArgs;
|
||||
import com.android.internal.R;
|
||||
import com.android.internal.util.Preconditions;
|
||||
import com.android.internal.util.XmlUtils;
|
||||
import com.android.server.DisplayThread;
|
||||
import com.android.server.LocalServices;
|
||||
@@ -1705,6 +1706,7 @@ public class InputManagerService extends IInputManager.Stub
|
||||
// Binder call
|
||||
@Override
|
||||
public void setCustomPointerIcon(PointerIcon icon) {
|
||||
Preconditions.checkNotNull(icon);
|
||||
nativeSetCustomPointerIcon(mPtr, icon);
|
||||
}
|
||||
|
||||
|
||||
@@ -1462,7 +1462,11 @@ static void nativeSetCustomPointerIcon(JNIEnv* env, jclass /* clazz */,
|
||||
NativeInputManager* im = reinterpret_cast<NativeInputManager*>(ptr);
|
||||
|
||||
PointerIcon pointerIcon;
|
||||
android_view_PointerIcon_getLoadedIcon(env, iconObj, &pointerIcon);
|
||||
status_t result = android_view_PointerIcon_getLoadedIcon(env, iconObj, &pointerIcon);
|
||||
if (result) {
|
||||
jniThrowRuntimeException(env, "Failed to load custom pointer icon.");
|
||||
return;
|
||||
}
|
||||
|
||||
SpriteIcon spriteIcon;
|
||||
pointerIcon.bitmap.copyTo(&spriteIcon.bitmap, kN32_SkColorType);
|
||||
|
||||
Reference in New Issue
Block a user