AArch64: Use long for pointers in RS Java/JNI code
Changes include
[x] Some JNI functions, with return type jlong, casts
pointer to jint before returning it. This has been fixed.
[x] Minor JNI function prototype changes where
formal paramter type has been changed to a JNI
type (int to jint for example).
[x] long is used for ScriptC, Sampler, Font, ProgramStore
handles as they can be 64-bit.
[x] A new hidden constructor ScriptC(long, RenderScript)
has been added. This should eventually replace public
API method ScriptC(int, RenderScript).
[x] Font and FileA3D use getNativeAsset instead of getAssetInt
to get Asset Handles. The getAssetInt method will be
deprecated in favor of getNativeAsset, as the former does
not support 64-bit.
[x] rsnPathCreate method accepts loop as an int. This should
be long as the underlying RS function assumes this to be
a pointer.
Change-Id: I919d857e5933febe63966049da83de9f9adee6f5
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
diff --git a/rs/java/android/renderscript/Font.java b/rs/java/android/renderscript/Font.java
index 0375d2b..cfd11c0 100644
--- a/rs/java/android/renderscript/Font.java
+++ b/rs/java/android/renderscript/Font.java
@@ -151,7 +151,7 @@
return "DroidSans.ttf";
}
- Font(int id, RenderScript rs) {
+ Font(long id, RenderScript rs) {
super(id, rs);
}
@@ -162,7 +162,7 @@
static public Font createFromFile(RenderScript rs, Resources res, String path, float pointSize) {
rs.validate();
int dpi = res.getDisplayMetrics().densityDpi;
- int fontId = rs.nFontCreateFromFile(path, pointSize, dpi);
+ long fontId = rs.nFontCreateFromFile(path, pointSize, dpi);
if(fontId == 0) {
throw new RSRuntimeException("Unable to create font from file " + path);
@@ -187,7 +187,7 @@
AssetManager mgr = res.getAssets();
int dpi = res.getDisplayMetrics().densityDpi;
- int fontId = rs.nFontCreateFromAsset(mgr, path, pointSize, dpi);
+ long fontId = rs.nFontCreateFromAsset(mgr, path, pointSize, dpi);
if(fontId == 0) {
throw new RSRuntimeException("Unable to create font from asset " + path);
}
@@ -211,9 +211,9 @@
int dpi = res.getDisplayMetrics().densityDpi;
- int fontId = 0;
+ long fontId = 0;
if (is instanceof AssetManager.AssetInputStream) {
- int asset = ((AssetManager.AssetInputStream) is).getAssetInt();
+ long asset = ((AssetManager.AssetInputStream) is).getNativeAsset();
fontId = rs.nFontCreateFromAssetStream(name, pointSize, dpi, asset);
} else {
throw new RSRuntimeException("Unsupported asset stream created");