From 27285821b74ca9bc381d33f40028f06ff0f85e0c Mon Sep 17 00:00:00 2001 From: Ashok Bhat Date: Wed, 18 Dec 2013 18:00:05 +0000 Subject: [PATCH] AArch64: Use long for pointers in DisplayEventReceiver For storing pointers, long is used as native pointers can be 64-bit. In addition, some minor changes have been done to conform with standard JNI practice (e.g. use of jint instead of int in JNI function prototypes) Change-Id: I3c0855373c0e4bedc172adb82b103586de9219dc Signed-off-by: Ashok Bhat --- core/java/android/view/DisplayEventReceiver.java | 8 ++++---- core/jni/android_view_DisplayEventReceiver.cpp | 14 +++++++------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/core/java/android/view/DisplayEventReceiver.java b/core/java/android/view/DisplayEventReceiver.java index 4dade20c5d164..de46a4a8f642a 100644 --- a/core/java/android/view/DisplayEventReceiver.java +++ b/core/java/android/view/DisplayEventReceiver.java @@ -36,16 +36,16 @@ public abstract class DisplayEventReceiver { private final CloseGuard mCloseGuard = CloseGuard.get(); - private int mReceiverPtr; + private long mReceiverPtr; // We keep a reference message queue object here so that it is not // GC'd while the native peer of the receiver is using them. private MessageQueue mMessageQueue; - private static native int nativeInit(DisplayEventReceiver receiver, + private static native long nativeInit(DisplayEventReceiver receiver, MessageQueue messageQueue); - private static native void nativeDispose(int receiverPtr); - private static native void nativeScheduleVsync(int receiverPtr); + private static native void nativeDispose(long receiverPtr); + private static native void nativeScheduleVsync(long receiverPtr); /** * Creates a display event receiver. diff --git a/core/jni/android_view_DisplayEventReceiver.cpp b/core/jni/android_view_DisplayEventReceiver.cpp index 01ab2ffa957c5..d4cc159b871c0 100644 --- a/core/jni/android_view_DisplayEventReceiver.cpp +++ b/core/jni/android_view_DisplayEventReceiver.cpp @@ -207,7 +207,7 @@ void NativeDisplayEventReceiver::dispatchHotplug(nsecs_t timestamp, int32_t id, } -static jint nativeInit(JNIEnv* env, jclass clazz, jobject receiverObj, +static jlong nativeInit(JNIEnv* env, jclass clazz, jobject receiverObj, jobject messageQueueObj) { sp messageQueue = android_os_MessageQueue_getMessageQueue(env, messageQueueObj); if (messageQueue == NULL) { @@ -226,17 +226,17 @@ static jint nativeInit(JNIEnv* env, jclass clazz, jobject receiverObj, } receiver->incStrong(gDisplayEventReceiverClassInfo.clazz); // retain a reference for the object - return reinterpret_cast(receiver.get()); + return reinterpret_cast(receiver.get()); } -static void nativeDispose(JNIEnv* env, jclass clazz, jint receiverPtr) { +static void nativeDispose(JNIEnv* env, jclass clazz, jlong receiverPtr) { sp receiver = reinterpret_cast(receiverPtr); receiver->dispose(); receiver->decStrong(gDisplayEventReceiverClassInfo.clazz); // drop reference held by the object } -static void nativeScheduleVsync(JNIEnv* env, jclass clazz, jint receiverPtr) { +static void nativeScheduleVsync(JNIEnv* env, jclass clazz, jlong receiverPtr) { sp receiver = reinterpret_cast(receiverPtr); status_t status = receiver->scheduleVsync(); @@ -251,12 +251,12 @@ static void nativeScheduleVsync(JNIEnv* env, jclass clazz, jint receiverPtr) { static JNINativeMethod gMethods[] = { /* name, signature, funcPtr */ { "nativeInit", - "(Landroid/view/DisplayEventReceiver;Landroid/os/MessageQueue;)I", + "(Landroid/view/DisplayEventReceiver;Landroid/os/MessageQueue;)J", (void*)nativeInit }, { "nativeDispose", - "(I)V", + "(J)V", (void*)nativeDispose }, - { "nativeScheduleVsync", "(I)V", + { "nativeScheduleVsync", "(J)V", (void*)nativeScheduleVsync } };