Skip to content
Snippets Groups Projects
Commit d5a1295d authored by Jean-François Geyelin's avatar Jean-François Geyelin Committed by Automerger Merge Worker
Browse files

Merge "Throw an exception when using RenderScript ScriptC with an API level...

Merge "Throw an exception when using RenderScript ScriptC with an API level above 34" into main am: f578d795

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2796181



Change-Id: I0351e30b0423253eff752b3c02d9b2fcd4500034
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 23c4787b f578d795
No related branches found
No related tags found
No related merge requests found
......@@ -16,9 +16,12 @@
package android.renderscript;
import android.app.compat.CompatChanges;
import android.compat.annotation.ChangeId;
import android.compat.annotation.EnabledAfter;
import android.content.res.Resources;
import android.util.Slog;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
......@@ -34,6 +37,15 @@ import java.io.InputStream;
public class ScriptC extends Script {
private static final String TAG = "ScriptC";
/**
* In targetSdkVersion 35 and above, Renderscript's ScriptC stops being supported
* and an exception is thrown when the class is instantiated.
* In targetSdkVersion 34 and below, Renderscript's ScriptC still works.
*/
@ChangeId
@EnabledAfter(targetSdkVersion = 35)
private static final long RENDERSCRIPT_SCRIPTC_DEPRECATION_CHANGE_ID = 297019750L;
/**
* Only intended for use by the generated derived classes.
*
......@@ -89,7 +101,19 @@ public class ScriptC extends Script {
setID(id);
}
private static void throwExceptionIfSDKTooHigh() {
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 "
+ "for proposed alternatives.";
Slog.w(TAG, message);
if (CompatChanges.isChangeEnabled(RENDERSCRIPT_SCRIPTC_DEPRECATION_CHANGE_ID)) {
throw new UnsupportedOperationException(message);
}
}
private static synchronized long internalCreate(RenderScript rs, Resources resources, int resourceID) {
throwExceptionIfSDKTooHigh();
byte[] pgm;
int pgmLength;
InputStream is = resources.openRawResource(resourceID);
......@@ -126,6 +150,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();
return rs.nScriptCCreate(resName, RenderScript.getCachePath(), bitcode, bitcode.length);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment