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 <ashok.bhat@arm.com>
This commit is contained in:
Ashok Bhat
2013-12-18 18:00:05 +00:00
committed by Narayan Kamath
parent 357ea90515
commit 27285821b7
2 changed files with 11 additions and 11 deletions

View File

@ -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.

View File

@ -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> 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<jint>(receiver.get());
return reinterpret_cast<jlong>(receiver.get());
}
static void nativeDispose(JNIEnv* env, jclass clazz, jint receiverPtr) {
static void nativeDispose(JNIEnv* env, jclass clazz, jlong receiverPtr) {
sp<NativeDisplayEventReceiver> receiver =
reinterpret_cast<NativeDisplayEventReceiver*>(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<NativeDisplayEventReceiver> receiver =
reinterpret_cast<NativeDisplayEventReceiver*>(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 }
};