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:
committed by
Narayan Kamath
parent
357ea90515
commit
27285821b7
@ -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.
|
||||
|
@ -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 }
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user