AArch64: Use long for pointers in hardware classes
For storing pointers, long is used in hardware classes,
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: Icdeb67f9273fb2d8f6d88ca68d7f7d0950796fc1
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
diff --git a/core/jni/android_hardware_Camera.cpp b/core/jni/android_hardware_Camera.cpp
index 09d8d0f..58b61ba 100644
--- a/core/jni/android_hardware_Camera.cpp
+++ b/core/jni/android_hardware_Camera.cpp
@@ -113,7 +113,7 @@
{
sp<Camera> camera;
Mutex::Autolock _l(sLock);
- JNICameraContext* context = reinterpret_cast<JNICameraContext*>(env->GetIntField(thiz, fields.context));
+ JNICameraContext* context = reinterpret_cast<JNICameraContext*>(env->GetLongField(thiz, fields.context));
if (context != NULL) {
camera = context->getCamera();
}
@@ -500,7 +500,7 @@
camera->setListener(context);
// save context in opaque field
- env->SetIntField(thiz, fields.context, (int)context.get());
+ env->SetLongField(thiz, fields.context, (jlong)context.get());
}
// disconnect from camera service
@@ -515,10 +515,10 @@
sp<Camera> camera;
{
Mutex::Autolock _l(sLock);
- context = reinterpret_cast<JNICameraContext*>(env->GetIntField(thiz, fields.context));
+ context = reinterpret_cast<JNICameraContext*>(env->GetLongField(thiz, fields.context));
// Make sure we do not attempt to callback on a deleted Java object.
- env->SetIntField(thiz, fields.context, 0);
+ env->SetLongField(thiz, fields.context, 0);
}
// clean up if release has not been called before
@@ -627,13 +627,13 @@
c->stopPreview();
}
-static bool android_hardware_Camera_previewEnabled(JNIEnv *env, jobject thiz)
+static jboolean android_hardware_Camera_previewEnabled(JNIEnv *env, jobject thiz)
{
ALOGV("previewEnabled");
sp<Camera> c = get_native_camera(env, thiz, NULL);
- if (c == 0) return false;
+ if (c == 0) return JNI_FALSE;
- return c->previewEnabled();
+ return c->previewEnabled() ? JNI_TRUE : JNI_FALSE;
}
static void android_hardware_Camera_setHasPreviewCallback(JNIEnv *env, jobject thiz, jboolean installed, jboolean manualBuffer)
@@ -651,10 +651,10 @@
context->setCallbackMode(env, installed, manualBuffer);
}
-static void android_hardware_Camera_addCallbackBuffer(JNIEnv *env, jobject thiz, jbyteArray bytes, int msgType) {
+static void android_hardware_Camera_addCallbackBuffer(JNIEnv *env, jobject thiz, jbyteArray bytes, jint msgType) {
ALOGV("addCallbackBuffer: 0x%x", msgType);
- JNICameraContext* context = reinterpret_cast<JNICameraContext*>(env->GetIntField(thiz, fields.context));
+ JNICameraContext* context = reinterpret_cast<JNICameraContext*>(env->GetLongField(thiz, fields.context));
if (context != NULL) {
context->addCallbackBuffer(env, bytes, msgType);
@@ -685,7 +685,7 @@
}
}
-static void android_hardware_Camera_takePicture(JNIEnv *env, jobject thiz, int msgType)
+static void android_hardware_Camera_takePicture(JNIEnv *env, jobject thiz, jint msgType)
{
ALOGV("takePicture");
JNICameraContext* context;
@@ -999,7 +999,7 @@
int register_android_hardware_Camera(JNIEnv *env)
{
field fields_to_find[] = {
- { "android/hardware/Camera", "mNativeContext", "I", &fields.context },
+ { "android/hardware/Camera", "mNativeContext", "J", &fields.context },
{ "android/hardware/Camera$CameraInfo", "facing", "I", &fields.facing },
{ "android/hardware/Camera$CameraInfo", "orientation", "I", &fields.orientation },
{ "android/hardware/Camera$CameraInfo", "canDisableShutterSound", "Z",