Make InputWindowInfo as a part of InputWindowHandle (2/2)
- Remove allocated InputWindowInfo in updateInfo.
- Access mInfo as an object member variable.
Bug: 112616659
Test: atest inputflinger_tests
Change-Id: I56b5a8eeac99e21fdd8c3fe300f288c8f123ce13
diff --git a/core/jni/android_hardware_input_InputWindowHandle.cpp b/core/jni/android_hardware_input_InputWindowHandle.cpp
index f4829ad..5b72241 100644
--- a/core/jni/android_hardware_input_InputWindowHandle.cpp
+++ b/core/jni/android_hardware_input_InputWindowHandle.cpp
@@ -80,51 +80,47 @@
JNIEnv* env = AndroidRuntime::getJNIEnv();
jobject obj = env->NewLocalRef(mObjWeak);
if (!obj) {
- releaseInfo();
+ releaseChannel();
return false;
}
- if (!mInfo) {
- mInfo = new InputWindowInfo();
- } else {
- mInfo->touchableRegion.clear();
- }
+ mInfo.touchableRegion.clear();
jobject inputChannelObj = env->GetObjectField(obj,
gInputWindowHandleClassInfo.inputChannel);
if (inputChannelObj) {
- mInfo->inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj);
+ mInfo.inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj);
env->DeleteLocalRef(inputChannelObj);
} else {
- mInfo->inputChannel.clear();
+ mInfo.inputChannel.clear();
}
jstring nameObj = jstring(env->GetObjectField(obj,
gInputWindowHandleClassInfo.name));
if (nameObj) {
const char* nameStr = env->GetStringUTFChars(nameObj, NULL);
- mInfo->name = nameStr;
+ mInfo.name = nameStr;
env->ReleaseStringUTFChars(nameObj, nameStr);
env->DeleteLocalRef(nameObj);
} else {
- mInfo->name = "<null>";
+ mInfo.name = "<null>";
}
- mInfo->layoutParamsFlags = env->GetIntField(obj,
+ mInfo.layoutParamsFlags = env->GetIntField(obj,
gInputWindowHandleClassInfo.layoutParamsFlags);
- mInfo->layoutParamsType = env->GetIntField(obj,
+ mInfo.layoutParamsType = env->GetIntField(obj,
gInputWindowHandleClassInfo.layoutParamsType);
- mInfo->dispatchingTimeout = env->GetLongField(obj,
+ mInfo.dispatchingTimeout = env->GetLongField(obj,
gInputWindowHandleClassInfo.dispatchingTimeoutNanos);
- mInfo->frameLeft = env->GetIntField(obj,
+ mInfo.frameLeft = env->GetIntField(obj,
gInputWindowHandleClassInfo.frameLeft);
- mInfo->frameTop = env->GetIntField(obj,
+ mInfo.frameTop = env->GetIntField(obj,
gInputWindowHandleClassInfo.frameTop);
- mInfo->frameRight = env->GetIntField(obj,
+ mInfo.frameRight = env->GetIntField(obj,
gInputWindowHandleClassInfo.frameRight);
- mInfo->frameBottom = env->GetIntField(obj,
+ mInfo.frameBottom = env->GetIntField(obj,
gInputWindowHandleClassInfo.frameBottom);
- mInfo->scaleFactor = env->GetFloatField(obj,
+ mInfo.scaleFactor = env->GetFloatField(obj,
gInputWindowHandleClassInfo.scaleFactor);
jobject regionObj = env->GetObjectField(obj,
@@ -133,30 +129,30 @@
SkRegion* region = android_graphics_Region_getSkRegion(env, regionObj);
for (SkRegion::Iterator it(*region); !it.done(); it.next()) {
const SkIRect& rect = it.rect();
- mInfo->addTouchableRegion(Rect(rect.fLeft, rect.fTop, rect.fRight, rect.fBottom));
+ mInfo.addTouchableRegion(Rect(rect.fLeft, rect.fTop, rect.fRight, rect.fBottom));
}
env->DeleteLocalRef(regionObj);
}
- mInfo->visible = env->GetBooleanField(obj,
+ mInfo.visible = env->GetBooleanField(obj,
gInputWindowHandleClassInfo.visible);
- mInfo->canReceiveKeys = env->GetBooleanField(obj,
+ mInfo.canReceiveKeys = env->GetBooleanField(obj,
gInputWindowHandleClassInfo.canReceiveKeys);
- mInfo->hasFocus = env->GetBooleanField(obj,
+ mInfo.hasFocus = env->GetBooleanField(obj,
gInputWindowHandleClassInfo.hasFocus);
- mInfo->hasWallpaper = env->GetBooleanField(obj,
+ mInfo.hasWallpaper = env->GetBooleanField(obj,
gInputWindowHandleClassInfo.hasWallpaper);
- mInfo->paused = env->GetBooleanField(obj,
+ mInfo.paused = env->GetBooleanField(obj,
gInputWindowHandleClassInfo.paused);
- mInfo->layer = env->GetIntField(obj,
+ mInfo.layer = env->GetIntField(obj,
gInputWindowHandleClassInfo.layer);
- mInfo->ownerPid = env->GetIntField(obj,
+ mInfo.ownerPid = env->GetIntField(obj,
gInputWindowHandleClassInfo.ownerPid);
- mInfo->ownerUid = env->GetIntField(obj,
+ mInfo.ownerUid = env->GetIntField(obj,
gInputWindowHandleClassInfo.ownerUid);
- mInfo->inputFeatures = env->GetIntField(obj,
+ mInfo.inputFeatures = env->GetIntField(obj,
gInputWindowHandleClassInfo.inputFeatures);
- mInfo->displayId = env->GetIntField(obj,
+ mInfo.displayId = env->GetIntField(obj,
gInputWindowHandleClassInfo.displayId);
env->DeleteLocalRef(obj);