diff options
author | 2024-02-26 14:35:33 +0000 | |
---|---|---|
committer | 2024-02-26 14:35:33 +0000 | |
commit | b69dbff6d1ec93e6e450a7fe01e3175c91ab3806 (patch) | |
tree | 062788b8d86f2cd49c41b255bd7a1b7f21a7caf3 | |
parent | b61307068d60fd117a45b374e003fc9f5629aca6 (diff) | |
parent | 82b08385c0041701acffb86b55bf6b19b5ffc531 (diff) |
Merge "Throw when ScriptC is used on unsupported ABIs" into main am: 82b08385c0
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2957974
Change-Id: I2a8f153a8fb24c4d2f202b963c5c7394d642311a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | rs/java/android/renderscript/ScriptC.java | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/rs/java/android/renderscript/ScriptC.java b/rs/java/android/renderscript/ScriptC.java index 67c2caa338a6..4a2f3da0eb06 100644 --- a/rs/java/android/renderscript/ScriptC.java +++ b/rs/java/android/renderscript/ScriptC.java @@ -101,7 +101,19 @@ public class ScriptC extends Script { setID(id); } - private static void throwExceptionIfSDKTooHigh() { + private static void throwExceptionIfScriptCUnsupported() { + // Checks that this device actually does have an ABI that supports ScriptC. + // + // For an explanation as to why `System.loadLibrary` is used, see discussion at + // https://android-review.googlesource.com/c/platform/frameworks/base/+/2957974/comment/2f908b80_a05292ee + try { + System.loadLibrary("RS"); + } catch (UnsatisfiedLinkError e) { + String s = "This device does not have an ABI that supports ScriptC."; + throw new UnsupportedOperationException(s); + } + + // Throw an exception if the target API is 35 or above String message = "ScriptC scripts are not supported when targeting an API Level >= 35. Please refer " + "to https://developer.android.com/guide/topics/renderscript/migration-guide " @@ -113,7 +125,7 @@ public class ScriptC extends Script { } private static synchronized long internalCreate(RenderScript rs, Resources resources, int resourceID) { - throwExceptionIfSDKTooHigh(); + throwExceptionIfScriptCUnsupported(); byte[] pgm; int pgmLength; InputStream is = resources.openRawResource(resourceID); @@ -150,7 +162,7 @@ public class ScriptC extends Script { private static synchronized long internalStringCreate(RenderScript rs, String resName, byte[] bitcode) { // Log.v(TAG, "Create script for resource = " + resName); - throwExceptionIfSDKTooHigh(); + throwExceptionIfScriptCUnsupported(); return rs.nScriptCCreate(resName, RenderScript.getCachePath(), bitcode, bitcode.length); } } |