diff options
-rw-r--r-- | core/jni/android_app_NativeActivity.cpp | 23 | ||||
-rw-r--r-- | core/jni/android_content_res_Configuration.cpp | 32 | ||||
-rw-r--r-- | core/jni/android_content_res_ObbScanner.cpp | 15 | ||||
-rw-r--r-- | core/jni/android_os_MessageQueue.cpp | 10 | ||||
-rw-r--r-- | core/jni/android_view_GLES20Canvas.cpp | 11 | ||||
-rw-r--r-- | core/jni/android_view_KeyCharacterMap.cpp | 13 | ||||
-rw-r--r-- | core/jni/android_view_MotionEvent.cpp | 31 | ||||
-rw-r--r-- | services/jni/com_android_server_InputApplication.cpp | 14 | ||||
-rw-r--r-- | services/jni/com_android_server_InputApplicationHandle.cpp | 10 | ||||
-rw-r--r-- | services/jni/com_android_server_InputManager.cpp | 68 | ||||
-rw-r--r-- | services/jni/com_android_server_InputWindow.cpp | 46 | ||||
-rw-r--r-- | services/jni/com_android_server_InputWindowHandle.cpp | 12 | ||||
-rw-r--r-- | services/jni/com_android_server_PowerManagerService.cpp | 12 |
13 files changed, 137 insertions, 160 deletions
diff --git a/core/jni/android_app_NativeActivity.cpp b/core/jni/android_app_NativeActivity.cpp index 56f2646..b1ea90b 100644 --- a/core/jni/android_app_NativeActivity.cpp +++ b/core/jni/android_app_NativeActivity.cpp @@ -42,8 +42,6 @@ namespace android { static struct { - jclass clazz; - jmethodID dispatchUnhandledKeyEvent; jmethodID preDispatchKeyEvent; jmethodID finish; @@ -1054,8 +1052,7 @@ static const char* const kNativeActivityPathName = "android/app/NativeActivity"; #define FIND_CLASS(var, className) \ var = env->FindClass(className); \ - LOG_FATAL_IF(! var, "Unable to find class %s", className); \ - var = jclass(env->NewGlobalRef(var)); + LOG_FATAL_IF(! var, "Unable to find class %s", className); #define GET_METHOD_ID(var, clazz, methodName, fieldDescriptor) \ var = env->GetMethodID(clazz, methodName, fieldDescriptor); \ @@ -1064,30 +1061,30 @@ static const char* const kNativeActivityPathName = "android/app/NativeActivity"; int register_android_app_NativeActivity(JNIEnv* env) { //LOGD("register_android_app_NativeActivity"); + jclass clazz; + FIND_CLASS(clazz, kNativeActivityPathName); - FIND_CLASS(gNativeActivityClassInfo.clazz, kNativeActivityPathName); - GET_METHOD_ID(gNativeActivityClassInfo.dispatchUnhandledKeyEvent, - gNativeActivityClassInfo.clazz, + clazz, "dispatchUnhandledKeyEvent", "(Landroid/view/KeyEvent;)Z"); GET_METHOD_ID(gNativeActivityClassInfo.preDispatchKeyEvent, - gNativeActivityClassInfo.clazz, + clazz, "preDispatchKeyEvent", "(Landroid/view/KeyEvent;I)V"); GET_METHOD_ID(gNativeActivityClassInfo.finish, - gNativeActivityClassInfo.clazz, + clazz, "finish", "()V"); GET_METHOD_ID(gNativeActivityClassInfo.setWindowFlags, - gNativeActivityClassInfo.clazz, + clazz, "setWindowFlags", "(II)V"); GET_METHOD_ID(gNativeActivityClassInfo.setWindowFormat, - gNativeActivityClassInfo.clazz, + clazz, "setWindowFormat", "(I)V"); GET_METHOD_ID(gNativeActivityClassInfo.showIme, - gNativeActivityClassInfo.clazz, + clazz, "showIme", "(I)V"); GET_METHOD_ID(gNativeActivityClassInfo.hideIme, - gNativeActivityClassInfo.clazz, + clazz, "hideIme", "(I)V"); return AndroidRuntime::registerNativeMethods( diff --git a/core/jni/android_content_res_Configuration.cpp b/core/jni/android_content_res_Configuration.cpp index 28a43ab..95b18ea 100644 --- a/core/jni/android_content_res_Configuration.cpp +++ b/core/jni/android_content_res_Configuration.cpp @@ -26,8 +26,6 @@ namespace android { static struct { - jclass clazz; - jfieldID mcc; jfieldID mnc; jfieldID locale; @@ -75,8 +73,7 @@ static JNINativeMethod gMethods[] = { #define FIND_CLASS(var, className) \ var = env->FindClass(className); \ - LOG_FATAL_IF(! var, "Unable to find class " className); \ - var = jclass(env->NewGlobalRef(var)); + LOG_FATAL_IF(! var, "Unable to find class " className); #define GET_FIELD_ID(var, clazz, fieldName, fieldDescriptor) \ var = env->GetFieldID(clazz, fieldName, fieldDescriptor); \ @@ -84,31 +81,32 @@ static JNINativeMethod gMethods[] = { int register_android_content_res_Configuration(JNIEnv* env) { - FIND_CLASS(gConfigurationClassInfo.clazz, "android/content/res/Configuration"); + jclass clazz; + FIND_CLASS(clazz, "android/content/res/Configuration"); - GET_FIELD_ID(gConfigurationClassInfo.mcc, gConfigurationClassInfo.clazz, + GET_FIELD_ID(gConfigurationClassInfo.mcc, clazz, "mcc", "I"); - GET_FIELD_ID(gConfigurationClassInfo.mnc, gConfigurationClassInfo.clazz, + GET_FIELD_ID(gConfigurationClassInfo.mnc, clazz, "mnc", "I"); - GET_FIELD_ID(gConfigurationClassInfo.locale, gConfigurationClassInfo.clazz, + GET_FIELD_ID(gConfigurationClassInfo.locale, clazz, "locale", "Ljava/util/Locale;"); - GET_FIELD_ID(gConfigurationClassInfo.screenLayout, gConfigurationClassInfo.clazz, + GET_FIELD_ID(gConfigurationClassInfo.screenLayout, clazz, "screenLayout", "I"); - GET_FIELD_ID(gConfigurationClassInfo.touchscreen, gConfigurationClassInfo.clazz, + GET_FIELD_ID(gConfigurationClassInfo.touchscreen, clazz, "touchscreen", "I"); - GET_FIELD_ID(gConfigurationClassInfo.keyboard, gConfigurationClassInfo.clazz, + GET_FIELD_ID(gConfigurationClassInfo.keyboard, clazz, "keyboard", "I"); - GET_FIELD_ID(gConfigurationClassInfo.keyboardHidden, gConfigurationClassInfo.clazz, + GET_FIELD_ID(gConfigurationClassInfo.keyboardHidden, clazz, "keyboardHidden", "I"); - GET_FIELD_ID(gConfigurationClassInfo.hardKeyboardHidden, gConfigurationClassInfo.clazz, + GET_FIELD_ID(gConfigurationClassInfo.hardKeyboardHidden, clazz, "hardKeyboardHidden", "I"); - GET_FIELD_ID(gConfigurationClassInfo.navigation, gConfigurationClassInfo.clazz, + GET_FIELD_ID(gConfigurationClassInfo.navigation, clazz, "navigation", "I"); - GET_FIELD_ID(gConfigurationClassInfo.navigationHidden, gConfigurationClassInfo.clazz, + GET_FIELD_ID(gConfigurationClassInfo.navigationHidden, clazz, "navigationHidden", "I"); - GET_FIELD_ID(gConfigurationClassInfo.orientation, gConfigurationClassInfo.clazz, + GET_FIELD_ID(gConfigurationClassInfo.orientation, clazz, "orientation", "I"); - GET_FIELD_ID(gConfigurationClassInfo.uiMode, gConfigurationClassInfo.clazz, + GET_FIELD_ID(gConfigurationClassInfo.uiMode, clazz, "uiMode", "I"); return AndroidRuntime::registerNativeMethods(env, "android/content/res/Configuration", gMethods, diff --git a/core/jni/android_content_res_ObbScanner.cpp b/core/jni/android_content_res_ObbScanner.cpp index 3fd7985..4759e27 100644 --- a/core/jni/android_content_res_ObbScanner.cpp +++ b/core/jni/android_content_res_ObbScanner.cpp @@ -91,8 +91,7 @@ static JNINativeMethod gMethods[] = { #define FIND_CLASS(var, className) \ var = env->FindClass(className); \ - LOG_FATAL_IF(! var, "Unable to find class " className); \ - var = jclass(env->NewGlobalRef(var)); + LOG_FATAL_IF(! var, "Unable to find class " className); #define GET_FIELD_ID(var, clazz, fieldName, fieldDescriptor) \ var = env->GetFieldID(clazz, fieldName, fieldDescriptor); \ @@ -100,15 +99,16 @@ static JNINativeMethod gMethods[] = { int register_android_content_res_ObbScanner(JNIEnv* env) { - FIND_CLASS(gObbInfoClassInfo.clazz, "android/content/res/ObbInfo"); + jclass clazz; + FIND_CLASS(clazz, "android/content/res/ObbInfo"); - GET_FIELD_ID(gObbInfoClassInfo.packageName, gObbInfoClassInfo.clazz, + GET_FIELD_ID(gObbInfoClassInfo.packageName, clazz, "packageName", "Ljava/lang/String;"); - GET_FIELD_ID(gObbInfoClassInfo.version, gObbInfoClassInfo.clazz, + GET_FIELD_ID(gObbInfoClassInfo.version, clazz, "version", "I"); - GET_FIELD_ID(gObbInfoClassInfo.flags, gObbInfoClassInfo.clazz, + GET_FIELD_ID(gObbInfoClassInfo.flags, clazz, "flags", "I"); - GET_FIELD_ID(gObbInfoClassInfo.salt, gObbInfoClassInfo.clazz, + GET_FIELD_ID(gObbInfoClassInfo.salt, clazz, "salt", "[B"); return AndroidRuntime::registerNativeMethods(env, "android/content/res/ObbScanner", gMethods, @@ -116,4 +116,3 @@ int register_android_content_res_ObbScanner(JNIEnv* env) } }; // namespace android - diff --git a/core/jni/android_os_MessageQueue.cpp b/core/jni/android_os_MessageQueue.cpp index d2e5462..12a77d5 100644 --- a/core/jni/android_os_MessageQueue.cpp +++ b/core/jni/android_os_MessageQueue.cpp @@ -27,8 +27,6 @@ namespace android { // ---------------------------------------------------------------------------- static struct { - jclass clazz; - jfieldID mPtr; // native object attached to the DVM MessageQueue } gMessageQueueClassInfo; @@ -135,8 +133,7 @@ static JNINativeMethod gMessageQueueMethods[] = { #define FIND_CLASS(var, className) \ var = env->FindClass(className); \ - LOG_FATAL_IF(! var, "Unable to find class " className); \ - var = jclass(env->NewGlobalRef(var)); + LOG_FATAL_IF(! var, "Unable to find class " className); #define GET_FIELD_ID(var, clazz, fieldName, fieldDescriptor) \ var = env->GetFieldID(clazz, fieldName, fieldDescriptor); \ @@ -147,9 +144,10 @@ int register_android_os_MessageQueue(JNIEnv* env) { gMessageQueueMethods, NELEM(gMessageQueueMethods)); LOG_FATAL_IF(res < 0, "Unable to register native methods."); - FIND_CLASS(gMessageQueueClassInfo.clazz, "android/os/MessageQueue"); + jclass clazz; + FIND_CLASS(clazz, "android/os/MessageQueue"); - GET_FIELD_ID(gMessageQueueClassInfo.mPtr, gMessageQueueClassInfo.clazz, + GET_FIELD_ID(gMessageQueueClassInfo.mPtr, clazz, "mPtr", "I"); return 0; diff --git a/core/jni/android_view_GLES20Canvas.cpp b/core/jni/android_view_GLES20Canvas.cpp index 7a609a5..ba3554b 100644 --- a/core/jni/android_view_GLES20Canvas.cpp +++ b/core/jni/android_view_GLES20Canvas.cpp @@ -72,7 +72,6 @@ using namespace uirenderer; // ---------------------------------------------------------------------------- static struct { - jclass clazz; jmethodID set; } gRectClassInfo; @@ -681,9 +680,8 @@ static JNINativeMethod gMethods[] = { #ifdef USE_OPENGL_RENDERER #define FIND_CLASS(var, className) \ var = env->FindClass(className); \ - LOG_FATAL_IF(! var, "Unable to find class " className); \ - var = jclass(env->NewGlobalRef(var)); - + LOG_FATAL_IF(! var, "Unable to find class " className); + #define GET_METHOD_ID(var, clazz, methodName, methodDescriptor) \ var = env->GetMethodID(clazz, methodName, methodDescriptor); \ LOG_FATAL_IF(! var, "Unable to find method " methodName); @@ -693,8 +691,9 @@ static JNINativeMethod gMethods[] = { #endif int register_android_view_GLES20Canvas(JNIEnv* env) { - FIND_CLASS(gRectClassInfo.clazz, "android/graphics/Rect"); - GET_METHOD_ID(gRectClassInfo.set, gRectClassInfo.clazz, "set", "(IIII)V"); + jclass clazz; + FIND_CLASS(clazz, "android/graphics/Rect"); + GET_METHOD_ID(gRectClassInfo.set, clazz, "set", "(IIII)V"); return AndroidRuntime::registerNativeMethods(env, kClassPathName, gMethods, NELEM(gMethods)); } diff --git a/core/jni/android_view_KeyCharacterMap.cpp b/core/jni/android_view_KeyCharacterMap.cpp index bfeec4f..aba3a72 100644 --- a/core/jni/android_view_KeyCharacterMap.cpp +++ b/core/jni/android_view_KeyCharacterMap.cpp @@ -30,8 +30,6 @@ static struct { } gKeyEventClassInfo; static struct { - jclass clazz; - jfieldID keyCode; jfieldID metaState; } gFallbackActionClassInfo; @@ -165,8 +163,7 @@ static JNINativeMethod g_methods[] = { #define FIND_CLASS(var, className) \ var = env->FindClass(className); \ - LOG_FATAL_IF(! var, "Unable to find class " className); \ - var = jclass(env->NewGlobalRef(var)); + LOG_FATAL_IF(! var, "Unable to find class " className); #define GET_FIELD_ID(var, clazz, fieldName, fieldDescriptor) \ var = env->GetFieldID(clazz, fieldName, fieldDescriptor); \ @@ -175,13 +172,15 @@ static JNINativeMethod g_methods[] = { int register_android_text_KeyCharacterMap(JNIEnv* env) { FIND_CLASS(gKeyEventClassInfo.clazz, "android/view/KeyEvent"); + gKeyEventClassInfo.clazz = jclass(env->NewGlobalRef(gKeyEventClassInfo.clazz)); - FIND_CLASS(gFallbackActionClassInfo.clazz, "android/view/KeyCharacterMap$FallbackAction"); + jclass clazz; + FIND_CLASS(clazz, "android/view/KeyCharacterMap$FallbackAction"); - GET_FIELD_ID(gFallbackActionClassInfo.keyCode, gFallbackActionClassInfo.clazz, + GET_FIELD_ID(gFallbackActionClassInfo.keyCode, clazz, "keyCode", "I"); - GET_FIELD_ID(gFallbackActionClassInfo.metaState, gFallbackActionClassInfo.clazz, + GET_FIELD_ID(gFallbackActionClassInfo.metaState, clazz, "metaState", "I"); return AndroidRuntime::registerNativeMethods(env, diff --git a/core/jni/android_view_MotionEvent.cpp b/core/jni/android_view_MotionEvent.cpp index 97cba23..68ebfe7 100644 --- a/core/jni/android_view_MotionEvent.cpp +++ b/core/jni/android_view_MotionEvent.cpp @@ -42,8 +42,6 @@ static struct { } gMotionEventClassInfo; static struct { - jclass clazz; - jfieldID mPackedAxisBits; jfieldID mPackedAxisValues; jfieldID x; @@ -734,8 +732,7 @@ static JNINativeMethod gMotionEventMethods[] = { #define FIND_CLASS(var, className) \ var = env->FindClass(className); \ - LOG_FATAL_IF(! var, "Unable to find class " className); \ - var = jclass(env->NewGlobalRef(var)); + LOG_FATAL_IF(! var, "Unable to find class " className); #define GET_STATIC_METHOD_ID(var, clazz, methodName, fieldDescriptor) \ var = env->GetStaticMethodID(clazz, methodName, fieldDescriptor); \ @@ -755,6 +752,7 @@ int register_android_view_MotionEvent(JNIEnv* env) { LOG_FATAL_IF(res < 0, "Unable to register native methods."); FIND_CLASS(gMotionEventClassInfo.clazz, "android/view/MotionEvent"); + gMotionEventClassInfo.clazz = jclass(env->NewGlobalRef(gMotionEventClassInfo.clazz)); GET_STATIC_METHOD_ID(gMotionEventClassInfo.obtain, gMotionEventClassInfo.clazz, "obtain", "()Landroid/view/MotionEvent;"); @@ -763,29 +761,30 @@ int register_android_view_MotionEvent(JNIEnv* env) { GET_FIELD_ID(gMotionEventClassInfo.mNativePtr, gMotionEventClassInfo.clazz, "mNativePtr", "I"); - FIND_CLASS(gPointerCoordsClassInfo.clazz, "android/view/MotionEvent$PointerCoords"); + jclass clazz; + FIND_CLASS(clazz, "android/view/MotionEvent$PointerCoords"); - GET_FIELD_ID(gPointerCoordsClassInfo.mPackedAxisBits, gPointerCoordsClassInfo.clazz, + GET_FIELD_ID(gPointerCoordsClassInfo.mPackedAxisBits, clazz, "mPackedAxisBits", "J"); - GET_FIELD_ID(gPointerCoordsClassInfo.mPackedAxisValues, gPointerCoordsClassInfo.clazz, + GET_FIELD_ID(gPointerCoordsClassInfo.mPackedAxisValues, clazz, "mPackedAxisValues", "[F"); - GET_FIELD_ID(gPointerCoordsClassInfo.x, gPointerCoordsClassInfo.clazz, + GET_FIELD_ID(gPointerCoordsClassInfo.x, clazz, "x", "F"); - GET_FIELD_ID(gPointerCoordsClassInfo.y, gPointerCoordsClassInfo.clazz, + GET_FIELD_ID(gPointerCoordsClassInfo.y, clazz, "y", "F"); - GET_FIELD_ID(gPointerCoordsClassInfo.pressure, gPointerCoordsClassInfo.clazz, + GET_FIELD_ID(gPointerCoordsClassInfo.pressure, clazz, "pressure", "F"); - GET_FIELD_ID(gPointerCoordsClassInfo.size, gPointerCoordsClassInfo.clazz, + GET_FIELD_ID(gPointerCoordsClassInfo.size, clazz, "size", "F"); - GET_FIELD_ID(gPointerCoordsClassInfo.touchMajor, gPointerCoordsClassInfo.clazz, + GET_FIELD_ID(gPointerCoordsClassInfo.touchMajor, clazz, "touchMajor", "F"); - GET_FIELD_ID(gPointerCoordsClassInfo.touchMinor, gPointerCoordsClassInfo.clazz, + GET_FIELD_ID(gPointerCoordsClassInfo.touchMinor, clazz, "touchMinor", "F"); - GET_FIELD_ID(gPointerCoordsClassInfo.toolMajor, gPointerCoordsClassInfo.clazz, + GET_FIELD_ID(gPointerCoordsClassInfo.toolMajor, clazz, "toolMajor", "F"); - GET_FIELD_ID(gPointerCoordsClassInfo.toolMinor, gPointerCoordsClassInfo.clazz, + GET_FIELD_ID(gPointerCoordsClassInfo.toolMinor, clazz, "toolMinor", "F"); - GET_FIELD_ID(gPointerCoordsClassInfo.orientation, gPointerCoordsClassInfo.clazz, + GET_FIELD_ID(gPointerCoordsClassInfo.orientation, clazz, "orientation", "F"); return 0; diff --git a/services/jni/com_android_server_InputApplication.cpp b/services/jni/com_android_server_InputApplication.cpp index e64ec4e..1f80242 100644 --- a/services/jni/com_android_server_InputApplication.cpp +++ b/services/jni/com_android_server_InputApplication.cpp @@ -26,8 +26,6 @@ namespace android { static struct { - jclass clazz; - jfieldID inputApplicationHandle; jfieldID name; jfieldID dispatchingTimeoutNanos; @@ -69,25 +67,25 @@ void android_server_InputApplication_toNative( #define FIND_CLASS(var, className) \ var = env->FindClass(className); \ - LOG_FATAL_IF(! var, "Unable to find class " className); \ - var = jclass(env->NewGlobalRef(var)); + LOG_FATAL_IF(! var, "Unable to find class " className); #define GET_FIELD_ID(var, clazz, fieldName, fieldDescriptor) \ var = env->GetFieldID(clazz, fieldName, fieldDescriptor); \ LOG_FATAL_IF(! var, "Unable to find field " fieldName); int register_android_server_InputApplication(JNIEnv* env) { - FIND_CLASS(gInputApplicationClassInfo.clazz, "com/android/server/wm/InputApplication"); + jclass clazz; + FIND_CLASS(clazz, "com/android/server/wm/InputApplication"); GET_FIELD_ID(gInputApplicationClassInfo.inputApplicationHandle, - gInputApplicationClassInfo.clazz, + clazz, "inputApplicationHandle", "Lcom/android/server/wm/InputApplicationHandle;"); - GET_FIELD_ID(gInputApplicationClassInfo.name, gInputApplicationClassInfo.clazz, + GET_FIELD_ID(gInputApplicationClassInfo.name, clazz, "name", "Ljava/lang/String;"); GET_FIELD_ID(gInputApplicationClassInfo.dispatchingTimeoutNanos, - gInputApplicationClassInfo.clazz, + clazz, "dispatchingTimeoutNanos", "J"); return 0; } diff --git a/services/jni/com_android_server_InputApplicationHandle.cpp b/services/jni/com_android_server_InputApplicationHandle.cpp index 3a1214f..9516964 100644 --- a/services/jni/com_android_server_InputApplicationHandle.cpp +++ b/services/jni/com_android_server_InputApplicationHandle.cpp @@ -26,8 +26,6 @@ namespace android { static struct { - jclass clazz; - jfieldID ptr; } gInputApplicationHandleClassInfo; @@ -98,8 +96,7 @@ static JNINativeMethod gInputApplicationHandleMethods[] = { #define FIND_CLASS(var, className) \ var = env->FindClass(className); \ - LOG_FATAL_IF(! var, "Unable to find class " className); \ - var = jclass(env->NewGlobalRef(var)); + LOG_FATAL_IF(! var, "Unable to find class " className); #define GET_FIELD_ID(var, clazz, fieldName, fieldDescriptor) \ var = env->GetFieldID(clazz, fieldName, fieldDescriptor); \ @@ -110,9 +107,10 @@ int register_android_server_InputApplicationHandle(JNIEnv* env) { gInputApplicationHandleMethods, NELEM(gInputApplicationHandleMethods)); LOG_FATAL_IF(res < 0, "Unable to register native methods."); - FIND_CLASS(gInputApplicationHandleClassInfo.clazz, "com/android/server/wm/InputApplicationHandle"); + jclass clazz; + FIND_CLASS(clazz, "com/android/server/wm/InputApplicationHandle"); - GET_FIELD_ID(gInputApplicationHandleClassInfo.ptr, gInputApplicationHandleClassInfo.clazz, + GET_FIELD_ID(gInputApplicationHandleClassInfo.ptr, clazz, "ptr", "I"); return 0; diff --git a/services/jni/com_android_server_InputManager.cpp b/services/jni/com_android_server_InputManager.cpp index 3be3b1b..110d4ef 100644 --- a/services/jni/com_android_server_InputManager.cpp +++ b/services/jni/com_android_server_InputManager.cpp @@ -52,8 +52,6 @@ namespace android { static struct { - jclass clazz; - jmethodID notifyConfigurationChanged; jmethodID notifyLidSwitchChanged; jmethodID notifyInputChannelBroken; @@ -95,16 +93,12 @@ static struct { } gInputDeviceClassInfo; static struct { - jclass clazz; - jfieldID touchscreen; jfieldID keyboard; jfieldID navigation; } gConfigurationClassInfo; static struct { - jclass clazz; - jfieldID bitmap; jfieldID hotSpotX; jfieldID hotSpotY; @@ -1227,8 +1221,7 @@ static JNINativeMethod gInputManagerMethods[] = { #define FIND_CLASS(var, className) \ var = env->FindClass(className); \ - LOG_FATAL_IF(! var, "Unable to find class " className); \ - var = jclass(env->NewGlobalRef(var)); + LOG_FATAL_IF(! var, "Unable to find class " className); #define GET_METHOD_ID(var, clazz, methodName, methodDescriptor) \ var = env->GetMethodID(clazz, methodName, methodDescriptor); \ @@ -1245,77 +1238,82 @@ int register_android_server_InputManager(JNIEnv* env) { // Callbacks - FIND_CLASS(gCallbacksClassInfo.clazz, "com/android/server/wm/InputManager$Callbacks"); + jclass clazz; + FIND_CLASS(clazz, "com/android/server/wm/InputManager$Callbacks"); - GET_METHOD_ID(gCallbacksClassInfo.notifyConfigurationChanged, gCallbacksClassInfo.clazz, + GET_METHOD_ID(gCallbacksClassInfo.notifyConfigurationChanged, clazz, "notifyConfigurationChanged", "(J)V"); - GET_METHOD_ID(gCallbacksClassInfo.notifyLidSwitchChanged, gCallbacksClassInfo.clazz, + GET_METHOD_ID(gCallbacksClassInfo.notifyLidSwitchChanged, clazz, "notifyLidSwitchChanged", "(JZ)V"); - GET_METHOD_ID(gCallbacksClassInfo.notifyInputChannelBroken, gCallbacksClassInfo.clazz, + GET_METHOD_ID(gCallbacksClassInfo.notifyInputChannelBroken, clazz, "notifyInputChannelBroken", "(Lcom/android/server/wm/InputWindowHandle;)V"); - GET_METHOD_ID(gCallbacksClassInfo.notifyANR, gCallbacksClassInfo.clazz, + GET_METHOD_ID(gCallbacksClassInfo.notifyANR, clazz, "notifyANR", "(Lcom/android/server/wm/InputApplicationHandle;Lcom/android/server/wm/InputWindowHandle;)J"); - GET_METHOD_ID(gCallbacksClassInfo.interceptKeyBeforeQueueing, gCallbacksClassInfo.clazz, + GET_METHOD_ID(gCallbacksClassInfo.interceptKeyBeforeQueueing, clazz, "interceptKeyBeforeQueueing", "(Landroid/view/KeyEvent;IZ)I"); GET_METHOD_ID(gCallbacksClassInfo.interceptMotionBeforeQueueingWhenScreenOff, - gCallbacksClassInfo.clazz, + clazz, "interceptMotionBeforeQueueingWhenScreenOff", "(I)I"); - GET_METHOD_ID(gCallbacksClassInfo.interceptKeyBeforeDispatching, gCallbacksClassInfo.clazz, + GET_METHOD_ID(gCallbacksClassInfo.interceptKeyBeforeDispatching, clazz, "interceptKeyBeforeDispatching", "(Lcom/android/server/wm/InputWindowHandle;Landroid/view/KeyEvent;I)Z"); - GET_METHOD_ID(gCallbacksClassInfo.dispatchUnhandledKey, gCallbacksClassInfo.clazz, + GET_METHOD_ID(gCallbacksClassInfo.dispatchUnhandledKey, clazz, "dispatchUnhandledKey", "(Lcom/android/server/wm/InputWindowHandle;Landroid/view/KeyEvent;I)Landroid/view/KeyEvent;"); - GET_METHOD_ID(gCallbacksClassInfo.checkInjectEventsPermission, gCallbacksClassInfo.clazz, + GET_METHOD_ID(gCallbacksClassInfo.checkInjectEventsPermission, clazz, "checkInjectEventsPermission", "(II)Z"); - GET_METHOD_ID(gCallbacksClassInfo.filterTouchEvents, gCallbacksClassInfo.clazz, + GET_METHOD_ID(gCallbacksClassInfo.filterTouchEvents, clazz, "filterTouchEvents", "()Z"); - GET_METHOD_ID(gCallbacksClassInfo.filterJumpyTouchEvents, gCallbacksClassInfo.clazz, + GET_METHOD_ID(gCallbacksClassInfo.filterJumpyTouchEvents, clazz, "filterJumpyTouchEvents", "()Z"); - GET_METHOD_ID(gCallbacksClassInfo.getVirtualKeyQuietTimeMillis, gCallbacksClassInfo.clazz, + GET_METHOD_ID(gCallbacksClassInfo.getVirtualKeyQuietTimeMillis, clazz, "getVirtualKeyQuietTimeMillis", "()I"); - GET_METHOD_ID(gCallbacksClassInfo.getExcludedDeviceNames, gCallbacksClassInfo.clazz, + GET_METHOD_ID(gCallbacksClassInfo.getExcludedDeviceNames, clazz, "getExcludedDeviceNames", "()[Ljava/lang/String;"); - GET_METHOD_ID(gCallbacksClassInfo.getKeyRepeatTimeout, gCallbacksClassInfo.clazz, + GET_METHOD_ID(gCallbacksClassInfo.getKeyRepeatTimeout, clazz, "getKeyRepeatTimeout", "()I"); - GET_METHOD_ID(gCallbacksClassInfo.getKeyRepeatDelay, gCallbacksClassInfo.clazz, + GET_METHOD_ID(gCallbacksClassInfo.getKeyRepeatDelay, clazz, "getKeyRepeatDelay", "()I"); - GET_METHOD_ID(gCallbacksClassInfo.getMaxEventsPerSecond, gCallbacksClassInfo.clazz, + GET_METHOD_ID(gCallbacksClassInfo.getMaxEventsPerSecond, clazz, "getMaxEventsPerSecond", "()I"); - GET_METHOD_ID(gCallbacksClassInfo.getPointerLayer, gCallbacksClassInfo.clazz, + GET_METHOD_ID(gCallbacksClassInfo.getPointerLayer, clazz, "getPointerLayer", "()I"); - GET_METHOD_ID(gCallbacksClassInfo.getPointerIcon, gCallbacksClassInfo.clazz, + GET_METHOD_ID(gCallbacksClassInfo.getPointerIcon, clazz, "getPointerIcon", "()Lcom/android/server/wm/InputManager$PointerIcon;"); // KeyEvent FIND_CLASS(gKeyEventClassInfo.clazz, "android/view/KeyEvent"); + gKeyEventClassInfo.clazz = jclass(env->NewGlobalRef(gKeyEventClassInfo.clazz)); + // MotionEvent FIND_CLASS(gMotionEventClassInfo.clazz, "android/view/MotionEvent"); + gMotionEventClassInfo.clazz = jclass(env->NewGlobalRef(gMotionEventClassInfo.clazz)); // InputDevice FIND_CLASS(gInputDeviceClassInfo.clazz, "android/view/InputDevice"); + gInputDeviceClassInfo.clazz = jclass(env->NewGlobalRef(gInputDeviceClassInfo.clazz)); GET_METHOD_ID(gInputDeviceClassInfo.ctor, gInputDeviceClassInfo.clazz, "<init>", "()V"); @@ -1337,28 +1335,28 @@ int register_android_server_InputManager(JNIEnv* env) { // Configuration - FIND_CLASS(gConfigurationClassInfo.clazz, "android/content/res/Configuration"); + FIND_CLASS(clazz, "android/content/res/Configuration"); - GET_FIELD_ID(gConfigurationClassInfo.touchscreen, gConfigurationClassInfo.clazz, + GET_FIELD_ID(gConfigurationClassInfo.touchscreen, clazz, "touchscreen", "I"); - GET_FIELD_ID(gConfigurationClassInfo.keyboard, gConfigurationClassInfo.clazz, + GET_FIELD_ID(gConfigurationClassInfo.keyboard, clazz, "keyboard", "I"); - GET_FIELD_ID(gConfigurationClassInfo.navigation, gConfigurationClassInfo.clazz, + GET_FIELD_ID(gConfigurationClassInfo.navigation, clazz, "navigation", "I"); // PointerIcon - FIND_CLASS(gPointerIconClassInfo.clazz, "com/android/server/wm/InputManager$PointerIcon"); + FIND_CLASS(clazz, "com/android/server/wm/InputManager$PointerIcon"); - GET_FIELD_ID(gPointerIconClassInfo.bitmap, gPointerIconClassInfo.clazz, + GET_FIELD_ID(gPointerIconClassInfo.bitmap, clazz, "bitmap", "Landroid/graphics/Bitmap;"); - GET_FIELD_ID(gPointerIconClassInfo.hotSpotX, gPointerIconClassInfo.clazz, + GET_FIELD_ID(gPointerIconClassInfo.hotSpotX, clazz, "hotSpotX", "F"); - GET_FIELD_ID(gPointerIconClassInfo.hotSpotY, gPointerIconClassInfo.clazz, + GET_FIELD_ID(gPointerIconClassInfo.hotSpotY, clazz, "hotSpotY", "F"); return 0; diff --git a/services/jni/com_android_server_InputWindow.cpp b/services/jni/com_android_server_InputWindow.cpp index 8548b47..99f625c 100644 --- a/services/jni/com_android_server_InputWindow.cpp +++ b/services/jni/com_android_server_InputWindow.cpp @@ -28,8 +28,6 @@ namespace android { static struct { - jclass clazz; - jfieldID inputWindowHandle; jfieldID inputChannel; jfieldID name; @@ -136,71 +134,71 @@ void android_server_InputWindow_toNative( #define FIND_CLASS(var, className) \ var = env->FindClass(className); \ - LOG_FATAL_IF(! var, "Unable to find class " className); \ - var = jclass(env->NewGlobalRef(var)); + LOG_FATAL_IF(! var, "Unable to find class " className); #define GET_FIELD_ID(var, clazz, fieldName, fieldDescriptor) \ var = env->GetFieldID(clazz, fieldName, fieldDescriptor); \ LOG_FATAL_IF(! var, "Unable to find field " fieldName); int register_android_server_InputWindow(JNIEnv* env) { - FIND_CLASS(gInputWindowClassInfo.clazz, "com/android/server/wm/InputWindow"); + jclass clazz; + FIND_CLASS(clazz, "com/android/server/wm/InputWindow"); - GET_FIELD_ID(gInputWindowClassInfo.inputWindowHandle, gInputWindowClassInfo.clazz, + GET_FIELD_ID(gInputWindowClassInfo.inputWindowHandle, clazz, "inputWindowHandle", "Lcom/android/server/wm/InputWindowHandle;"); - GET_FIELD_ID(gInputWindowClassInfo.inputChannel, gInputWindowClassInfo.clazz, + GET_FIELD_ID(gInputWindowClassInfo.inputChannel, clazz, "inputChannel", "Landroid/view/InputChannel;"); - GET_FIELD_ID(gInputWindowClassInfo.name, gInputWindowClassInfo.clazz, + GET_FIELD_ID(gInputWindowClassInfo.name, clazz, "name", "Ljava/lang/String;"); - GET_FIELD_ID(gInputWindowClassInfo.layoutParamsFlags, gInputWindowClassInfo.clazz, + GET_FIELD_ID(gInputWindowClassInfo.layoutParamsFlags, clazz, "layoutParamsFlags", "I"); - GET_FIELD_ID(gInputWindowClassInfo.layoutParamsType, gInputWindowClassInfo.clazz, + GET_FIELD_ID(gInputWindowClassInfo.layoutParamsType, clazz, "layoutParamsType", "I"); - GET_FIELD_ID(gInputWindowClassInfo.dispatchingTimeoutNanos, gInputWindowClassInfo.clazz, + GET_FIELD_ID(gInputWindowClassInfo.dispatchingTimeoutNanos, clazz, "dispatchingTimeoutNanos", "J"); - GET_FIELD_ID(gInputWindowClassInfo.frameLeft, gInputWindowClassInfo.clazz, + GET_FIELD_ID(gInputWindowClassInfo.frameLeft, clazz, "frameLeft", "I"); - GET_FIELD_ID(gInputWindowClassInfo.frameTop, gInputWindowClassInfo.clazz, + GET_FIELD_ID(gInputWindowClassInfo.frameTop, clazz, "frameTop", "I"); - GET_FIELD_ID(gInputWindowClassInfo.frameRight, gInputWindowClassInfo.clazz, + GET_FIELD_ID(gInputWindowClassInfo.frameRight, clazz, "frameRight", "I"); - GET_FIELD_ID(gInputWindowClassInfo.frameBottom, gInputWindowClassInfo.clazz, + GET_FIELD_ID(gInputWindowClassInfo.frameBottom, clazz, "frameBottom", "I"); - GET_FIELD_ID(gInputWindowClassInfo.touchableRegion, gInputWindowClassInfo.clazz, + GET_FIELD_ID(gInputWindowClassInfo.touchableRegion, clazz, "touchableRegion", "Landroid/graphics/Region;"); - GET_FIELD_ID(gInputWindowClassInfo.visible, gInputWindowClassInfo.clazz, + GET_FIELD_ID(gInputWindowClassInfo.visible, clazz, "visible", "Z"); - GET_FIELD_ID(gInputWindowClassInfo.canReceiveKeys, gInputWindowClassInfo.clazz, + GET_FIELD_ID(gInputWindowClassInfo.canReceiveKeys, clazz, "canReceiveKeys", "Z"); - GET_FIELD_ID(gInputWindowClassInfo.hasFocus, gInputWindowClassInfo.clazz, + GET_FIELD_ID(gInputWindowClassInfo.hasFocus, clazz, "hasFocus", "Z"); - GET_FIELD_ID(gInputWindowClassInfo.hasWallpaper, gInputWindowClassInfo.clazz, + GET_FIELD_ID(gInputWindowClassInfo.hasWallpaper, clazz, "hasWallpaper", "Z"); - GET_FIELD_ID(gInputWindowClassInfo.paused, gInputWindowClassInfo.clazz, + GET_FIELD_ID(gInputWindowClassInfo.paused, clazz, "paused", "Z"); - GET_FIELD_ID(gInputWindowClassInfo.layer, gInputWindowClassInfo.clazz, + GET_FIELD_ID(gInputWindowClassInfo.layer, clazz, "layer", "I"); - GET_FIELD_ID(gInputWindowClassInfo.ownerPid, gInputWindowClassInfo.clazz, + GET_FIELD_ID(gInputWindowClassInfo.ownerPid, clazz, "ownerPid", "I"); - GET_FIELD_ID(gInputWindowClassInfo.ownerUid, gInputWindowClassInfo.clazz, + GET_FIELD_ID(gInputWindowClassInfo.ownerUid, clazz, "ownerUid", "I"); return 0; } diff --git a/services/jni/com_android_server_InputWindowHandle.cpp b/services/jni/com_android_server_InputWindowHandle.cpp index 5b74e43..aaf679c 100644 --- a/services/jni/com_android_server_InputWindowHandle.cpp +++ b/services/jni/com_android_server_InputWindowHandle.cpp @@ -27,8 +27,6 @@ namespace android { static struct { - jclass clazz; - jfieldID ptr; jfieldID inputApplicationHandle; } gInputWindowHandleClassInfo; @@ -108,8 +106,7 @@ static JNINativeMethod gInputWindowHandleMethods[] = { #define FIND_CLASS(var, className) \ var = env->FindClass(className); \ - LOG_FATAL_IF(! var, "Unable to find class " className); \ - var = jclass(env->NewGlobalRef(var)); + LOG_FATAL_IF(! var, "Unable to find class " className); #define GET_FIELD_ID(var, clazz, fieldName, fieldDescriptor) \ var = env->GetFieldID(clazz, fieldName, fieldDescriptor); \ @@ -120,13 +117,14 @@ int register_android_server_InputWindowHandle(JNIEnv* env) { gInputWindowHandleMethods, NELEM(gInputWindowHandleMethods)); LOG_FATAL_IF(res < 0, "Unable to register native methods."); - FIND_CLASS(gInputWindowHandleClassInfo.clazz, "com/android/server/wm/InputWindowHandle"); + jclass clazz; + FIND_CLASS(clazz, "com/android/server/wm/InputWindowHandle"); - GET_FIELD_ID(gInputWindowHandleClassInfo.ptr, gInputWindowHandleClassInfo.clazz, + GET_FIELD_ID(gInputWindowHandleClassInfo.ptr, clazz, "ptr", "I"); GET_FIELD_ID(gInputWindowHandleClassInfo.inputApplicationHandle, - gInputWindowHandleClassInfo.clazz, + clazz, "inputApplicationHandle", "Lcom/android/server/wm/InputApplicationHandle;"); return 0; diff --git a/services/jni/com_android_server_PowerManagerService.cpp b/services/jni/com_android_server_PowerManagerService.cpp index 705be60..a389c11 100644 --- a/services/jni/com_android_server_PowerManagerService.cpp +++ b/services/jni/com_android_server_PowerManagerService.cpp @@ -35,8 +35,6 @@ namespace android { // ---------------------------------------------------------------------------- static struct { - jclass clazz; - jmethodID goToSleep; jmethodID userActivity; } gPowerManagerServiceClassInfo; @@ -144,8 +142,7 @@ static JNINativeMethod gPowerManagerServiceMethods[] = { #define FIND_CLASS(var, className) \ var = env->FindClass(className); \ - LOG_FATAL_IF(! var, "Unable to find class " className); \ - var = jclass(env->NewGlobalRef(var)); + LOG_FATAL_IF(! var, "Unable to find class " className); #define GET_METHOD_ID(var, clazz, methodName, methodDescriptor) \ var = env->GetMethodID(clazz, methodName, methodDescriptor); \ @@ -162,12 +159,13 @@ int register_android_server_PowerManagerService(JNIEnv* env) { // Callbacks - FIND_CLASS(gPowerManagerServiceClassInfo.clazz, "com/android/server/PowerManagerService"); + jclass clazz; + FIND_CLASS(clazz, "com/android/server/PowerManagerService"); - GET_METHOD_ID(gPowerManagerServiceClassInfo.goToSleep, gPowerManagerServiceClassInfo.clazz, + GET_METHOD_ID(gPowerManagerServiceClassInfo.goToSleep, clazz, "goToSleep", "(J)V"); - GET_METHOD_ID(gPowerManagerServiceClassInfo.userActivity, gPowerManagerServiceClassInfo.clazz, + GET_METHOD_ID(gPowerManagerServiceClassInfo.userActivity, clazz, "userActivity", "(JZIZ)V"); // Initialize |