AArch64: Modified to support 64-bit systems
In the porting of Bitmap the "android/graphics/Bitmap"
mNativeBitmap used by this module has changed type
from jint to jlong.
Change-Id: If1071e08f3d1182ccf218d4e0d3ab36cedaccdae
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
diff --git a/Embedded/common/src/b_BasicEm/Int16Arr.c b/Embedded/common/src/b_BasicEm/Int16Arr.c
index 1d4d0ce..3ada02d 100644
--- a/Embedded/common/src/b_BasicEm/Int16Arr.c
+++ b/Embedded/common/src/b_BasicEm/Int16Arr.c
@@ -19,6 +19,10 @@
#include "b_BasicEm/Functions.h"
#include "b_BasicEm/Int16Arr.h"
+#ifndef bbs_TYPES_64_AVAILABLE
+#include <stdint.h>
+#endif
+
/* ------------------------------------------------------------------------- */
/* ========================================================================= */
@@ -181,7 +185,7 @@
ptrA->arrPtrE++;
}
#else
- while( ( ( ( uint32 ) ptrA->arrPtrE ) & ( alignBytesA - 1 ) ) )
+ while( ( ( ( uintptr_t ) ptrA->arrPtrE ) & ( alignBytesA - 1 ) ) )
{
ptrA->arrPtrE++;
}
diff --git a/FaceDetector_jni.cpp b/FaceDetector_jni.cpp
index fd1e7ee..414b117 100644
--- a/FaceDetector_jni.cpp
+++ b/FaceDetector_jni.cpp
@@ -95,9 +95,9 @@
nativeClassInit
(JNIEnv *_env, jclass _this)
{
- gFaceDetectorOffsets.fd = _env->GetFieldID(_this, "mFD", "I");
- gFaceDetectorOffsets.sdk = _env->GetFieldID(_this, "mSDK", "I");
- gFaceDetectorOffsets.dcr = _env->GetFieldID(_this, "mDCR", "I");
+ gFaceDetectorOffsets.fd = _env->GetFieldID(_this, "mFD", "J");
+ gFaceDetectorOffsets.sdk = _env->GetFieldID(_this, "mSDK", "J");
+ gFaceDetectorOffsets.dcr = _env->GetFieldID(_this, "mDCR", "J");
gFaceDetectorOffsets.width = _env->GetFieldID(_this, "mWidth", "I");
gFaceDetectorOffsets.height = _env->GetFieldID(_this, "mHeight", "I");
gFaceDetectorOffsets.maxFaces = _env->GetFieldID(_this, "mMaxFaces", "I");
@@ -113,7 +113,7 @@
gFaceOffsets.eulerz = _env->GetFieldID(faceClass, "mPoseEulerZ", "F");
jclass bitmapClass = _env->FindClass("android/graphics/Bitmap");
- nativeBitmapID = _env->GetFieldID(bitmapClass, "mNativeBitmap", "I");
+ nativeBitmapID = _env->GetFieldID(bitmapClass, "mNativeBitmap", "J");
}
// ---------------------------------------------------------------------------
@@ -173,9 +173,9 @@
free(initData);
// initialize the java object
- _env->SetIntField(_this, gFaceDetectorOffsets.fd, (jint)fd);
- _env->SetIntField(_this, gFaceDetectorOffsets.sdk, (jint)sdk);
- _env->SetIntField(_this, gFaceDetectorOffsets.dcr, (jint)dcr);
+ _env->SetLongField(_this, gFaceDetectorOffsets.fd, (jlong)fd);
+ _env->SetLongField(_this, gFaceDetectorOffsets.sdk, (jlong)sdk);
+ _env->SetLongField(_this, gFaceDetectorOffsets.dcr, (jlong)dcr);
return 1;
}
@@ -184,13 +184,13 @@
destroy(JNIEnv *_env, jobject _this)
{
btk_HFaceFinder hfd =
- (btk_HFaceFinder)(_env->GetIntField(_this, gFaceDetectorOffsets.fd));
+ (btk_HFaceFinder)(_env->GetLongField(_this, gFaceDetectorOffsets.fd));
btk_FaceFinder_close( hfd );
- btk_HDCR hdcr = (btk_HDCR)(_env->GetIntField(_this, gFaceDetectorOffsets.dcr));
+ btk_HDCR hdcr = (btk_HDCR)(_env->GetLongField(_this, gFaceDetectorOffsets.dcr));
btk_DCR_close( hdcr );
- btk_HSDK hsdk = (btk_HSDK)(_env->GetIntField(_this, gFaceDetectorOffsets.sdk));
+ btk_HSDK hsdk = (btk_HSDK)(_env->GetLongField(_this, gFaceDetectorOffsets.sdk));
btk_SDK_close( hsdk );
}
@@ -199,9 +199,9 @@
jobject bitmap)
{
// get the fields we need
- btk_HDCR hdcr = (btk_HDCR)(_env->GetIntField(_this, gFaceDetectorOffsets.dcr));
+ btk_HDCR hdcr = (btk_HDCR)(_env->GetLongField(_this, gFaceDetectorOffsets.dcr));
btk_HFaceFinder hfd =
- (btk_HFaceFinder)(_env->GetIntField(_this, gFaceDetectorOffsets.fd));
+ (btk_HFaceFinder)(_env->GetLongField(_this, gFaceDetectorOffsets.fd));
u32 maxFaces = _env->GetIntField(_this, gFaceDetectorOffsets.maxFaces);
u32 width = _env->GetIntField(_this, gFaceDetectorOffsets.width);
u32 height = _env->GetIntField(_this, gFaceDetectorOffsets.height);
@@ -211,7 +211,7 @@
// get to the native bitmap
SkBitmap const * nativeBitmap =
- (SkBitmap const *)_env->GetIntField(bitmap, nativeBitmapID);
+ (SkBitmap const *)_env->GetLongField(bitmap, nativeBitmapID);
// get to our BW temporary buffer
jbyte* bwbuffer = _env->GetByteArrayElements(bwbufferObject, 0);
@@ -256,9 +256,9 @@
get_face(JNIEnv *_env, jobject _this,
jobject face, jint index)
{
- btk_HDCR hdcr = (btk_HDCR)(_env->GetIntField(_this, gFaceDetectorOffsets.dcr));
+ btk_HDCR hdcr = (btk_HDCR)(_env->GetLongField(_this, gFaceDetectorOffsets.dcr));
btk_HFaceFinder hfd =
- (btk_HFaceFinder)(_env->GetIntField(_this, gFaceDetectorOffsets.fd));
+ (btk_HFaceFinder)(_env->GetLongField(_this, gFaceDetectorOffsets.fd));
FaceData faceData;
btk_FaceFinder_getDCR(hfd, hdcr);
diff --git a/FaceRecEm/common/src/b_FDSDK/SDK.h b/FaceRecEm/common/src/b_FDSDK/SDK.h
index 33742e5..f5f7bdb 100644
--- a/FaceRecEm/common/src/b_FDSDK/SDK.h
+++ b/FaceRecEm/common/src/b_FDSDK/SDK.h
@@ -29,6 +29,7 @@
/* ---- includes ----------------------------------------------------------- */
#include "Types.h"
+#include <sys/types.h>
/* ---- related objects --------------------------------------------------- */
@@ -41,7 +42,7 @@
typedef struct btk_SDK* btk_HSDK;
/** malloc function pointer */
-typedef void* ( *btk_fpMalloc )( u32 sizeA );
+typedef void* ( *btk_fpMalloc )( size_t sizeA );
/** free function pointer */
typedef void ( *btk_fpFree )( void* memPtrA );