From b69c791b7995afa5d74d081ef13ccc49a8a7e8da Mon Sep 17 00:00:00 2001 From: Jason Sams Date: Tue, 20 May 2014 18:48:35 -0700 Subject: [PATCH] Validate RenderScript context creation flags Sync the IDs to that of the native interface. Change-Id: I7516c1ea4f4a93844ddb8397b2fc1e79ff8d6b68 --- api/current.txt | 4 ++-- rs/java/android/renderscript/RenderScript.java | 10 +++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/api/current.txt b/api/current.txt index 6353ada560319..27afcda728afa 100644 --- a/api/current.txt +++ b/api/current.txt @@ -25086,8 +25086,8 @@ package android.renderscript { 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 a62d1fd1d96ab..2222d2c61c973 100644 --- a/rs/java/android/renderscript/RenderScript.java +++ b/rs/java/android/renderscript/RenderScript.java @@ -73,14 +73,14 @@ public class RenderScript { * 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 @@ public class RenderScript { 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.");