Merge "Validate RenderScript context creation flags"
diff --git a/api/current.txt b/api/current.txt
index 3a69748..c4f1896 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -25073,8 +25073,8 @@
method public void setErrorHandler(android.renderscript.RenderScript.RSErrorHandler);
method public void setMessageHandler(android.renderscript.RenderScript.RSMessageHandler);
method public void setPriority(android.renderscript.RenderScript.Priority);
- field public static final long CREATE_FLAG_LOW_LATENCY = 1L; // 0x1L
- field public static final long CREATE_FLAG_LOW_POWER = 2L; // 0x2L
+ field public static final long CREATE_FLAG_LOW_LATENCY = 2L; // 0x2L
+ field public static final long CREATE_FLAG_LOW_POWER = 4L; // 0x4L
field public static final long CREATE_FLAG_NONE = 0L; // 0x0L
}
diff --git a/rs/java/android/renderscript/RenderScript.java b/rs/java/android/renderscript/RenderScript.java
index a62d1fd..2222d2c 100644
--- a/rs/java/android/renderscript/RenderScript.java
+++ b/rs/java/android/renderscript/RenderScript.java
@@ -73,14 +73,14 @@
* latency over peak performance. This is a hint and may have no effect
* on some implementations.
*/
- public static final long CREATE_FLAG_LOW_LATENCY = 0x0001;
+ public static final long CREATE_FLAG_LOW_LATENCY = 0x0002;
/*
* Context creation flag which specifies a context optimized for long
* battery life over peak performance. This is a hint and may have no effect
* on some implementations.
*/
- public static final long CREATE_FLAG_LOW_POWER = 0x0002;
+ public static final long CREATE_FLAG_LOW_POWER = 0x0004;
static {
sInitialized = false;
@@ -1180,10 +1180,14 @@
return null;
}
+ if ((flags & ~(CREATE_FLAG_LOW_LATENCY | CREATE_FLAG_LOW_POWER)) != 0) {
+ throw new RSIllegalArgumentException("Invalid flags passed.");
+ }
+
RenderScript rs = new RenderScript(ctx);
rs.mDev = rs.nDeviceCreate();
- rs.mContext = rs.nContextCreate(rs.mDev, 0, sdkVersion, ct.mID);
+ rs.mContext = rs.nContextCreate(rs.mDev, (int)flags, sdkVersion, ct.mID);
rs.mContextType = ct;
if (rs.mContext == 0) {
throw new RSDriverException("Failed to create RS context.");