More RS exceptions cleanup.

Remove some dead code.

Change-Id: If97e3fdfe6de7bb28f22e1c5ee748c81cea3db93
This commit is contained in:
Jason Sams
2010-11-04 14:32:19 -07:00
parent cebfaab7a5
commit c1d6210fb5
7 changed files with 51 additions and 69 deletions

View File

@@ -33,7 +33,7 @@ class BaseObj {
public int getID() {
if (mDestroyed) {
throw new IllegalStateException("using a destroyed object.");
throw new RSInvalidStateException("using a destroyed object.");
}
return mID;
}
@@ -43,13 +43,12 @@ class BaseObj {
String mName;
RenderScript mRS;
public void setName(String s) throws IllegalStateException, IllegalArgumentException
{
public void setName(String s) {
if(s.length() < 1) {
throw new IllegalArgumentException("setName does not accept a zero length string.");
throw new RSIllegalArgumentException("setName does not accept a zero length string.");
}
if(mName != null) {
throw new IllegalArgumentException("setName object already has a name.");
throw new RSIllegalArgumentException("setName object already has a name.");
}
try {
@@ -61,8 +60,7 @@ class BaseObj {
}
}
protected void finalize() throws Throwable
{
protected void finalize() throws Throwable {
if (!mDestroyed) {
if(mID != 0 && mRS.isAlive()) {
mRS.nObjDestroy(mID);
@@ -78,7 +76,7 @@ class BaseObj {
public void destroy() {
if(mDestroyed) {
throw new IllegalStateException("Object already destroyed.");
throw new RSInvalidStateException("Object already destroyed.");
}
mDestroyed = true;
mRS.nObjDestroy(mID);

View File

@@ -93,6 +93,18 @@ public class Element extends BaseObj {
}
}
public boolean isComplex() {
if (mElements == null) {
return false;
}
for (int ct=0; ct < mElements.length; ct++) {
if (mElements[ct].mElements != null) {
return true;
}
}
return false;
}
public static Element BOOLEAN(RenderScript rs) {
if(rs.mElement_BOOLEAN == null) {
rs.mElement_BOOLEAN = createUser(rs, DataType.BOOLEAN);
@@ -397,7 +409,7 @@ public class Element extends BaseObj {
}
public void destroy() throws IllegalStateException {
public void destroy() {
super.destroy();
}
@@ -412,7 +424,7 @@ public class Element extends BaseObj {
public static Element createVector(RenderScript rs, DataType dt, int size) {
if (size < 2 || size > 4) {
throw new IllegalArgumentException("Bad size");
throw new RSIllegalArgumentException("Vector size out of rance 2-4.");
}
DataKind dk = DataKind.USER;
boolean norm = false;
@@ -426,22 +438,22 @@ public class Element extends BaseObj {
dk == DataKind.PIXEL_LA ||
dk == DataKind.PIXEL_RGB ||
dk == DataKind.PIXEL_RGBA)) {
throw new IllegalArgumentException("Unsupported DataKind");
throw new RSIllegalArgumentException("Unsupported DataKind");
}
if (!(dt == DataType.UNSIGNED_8 ||
dt == DataType.UNSIGNED_5_6_5 ||
dt == DataType.UNSIGNED_4_4_4_4 ||
dt == DataType.UNSIGNED_5_5_5_1)) {
throw new IllegalArgumentException("Unsupported DataType");
throw new RSIllegalArgumentException("Unsupported DataType");
}
if (dt == DataType.UNSIGNED_5_6_5 && dk != DataKind.PIXEL_RGB) {
throw new IllegalArgumentException("Bad kind and type combo");
throw new RSIllegalArgumentException("Bad kind and type combo");
}
if (dt == DataType.UNSIGNED_5_5_5_1 && dk != DataKind.PIXEL_RGBA) {
throw new IllegalArgumentException("Bad kind and type combo");
throw new RSIllegalArgumentException("Bad kind and type combo");
}
if (dt == DataType.UNSIGNED_4_4_4_4 && dk != DataKind.PIXEL_RGBA) {
throw new IllegalArgumentException("Bad kind and type combo");
throw new RSIllegalArgumentException("Bad kind and type combo");
}
int size = 1;
@@ -477,7 +489,7 @@ public class Element extends BaseObj {
public void add(Element element, String name, int arraySize) {
if (arraySize < 1) {
throw new IllegalArgumentException("Array size cannot be less than 1.");
throw new RSIllegalArgumentException("Array size cannot be less than 1.");
}
if(mCount == mElements.length) {
Element[] e = new Element[mCount + 8];

View File

@@ -47,6 +47,13 @@ public class Program extends BaseObj {
}
public void bindConstants(Allocation a, int slot) {
if (slot < 0 || slot >= mConstants.length) {
throw new IllegalArgumentException("Slot ID out of range.");
}
if (a != null &&
a.getType().getID() != mConstants[slot].getID()) {
throw new IllegalArgumentException("Allocation type does not match slot type.");
}
mRS.nProgramBindConstants(mID, slot, a.mID);
}
@@ -141,7 +148,10 @@ public class Program extends BaseObj {
public void addInput(Element e) throws IllegalStateException {
// Should check for consistant and non-conflicting names...
if(mInputCount >= MAX_INPUT) {
throw new IllegalArgumentException("Max input count exceeded.");
throw new RSIllegalArgumentException("Max input count exceeded.");
}
if (e.isComplex()) {
throw new RSIllegalArgumentException("Complex elements not allowed.");
}
mInputs[mInputCount++] = e;
}
@@ -149,7 +159,10 @@ public class Program extends BaseObj {
public void addOutput(Element e) throws IllegalStateException {
// Should check for consistant and non-conflicting names...
if(mOutputCount >= MAX_OUTPUT) {
throw new IllegalArgumentException("Max output count exceeded.");
throw new RSIllegalArgumentException("Max output count exceeded.");
}
if (e.isComplex()) {
throw new RSIllegalArgumentException("Complex elements not allowed.");
}
mOutputs[mOutputCount++] = e;
}
@@ -164,7 +177,10 @@ public class Program extends BaseObj {
public int addConstant(Type t) throws IllegalStateException {
// Should check for consistant and non-conflicting names...
if(mConstantCount >= MAX_CONSTANT) {
throw new IllegalArgumentException("Max input count exceeded.");
throw new RSIllegalArgumentException("Max input count exceeded.");
}
if (t.getElement().isComplex()) {
throw new RSIllegalArgumentException("Complex elements not allowed.");
}
mConstants[mConstantCount] = t;
return mConstantCount++;

View File

@@ -156,10 +156,6 @@ public class RenderScript {
synchronized void nObjDestroy(int id) {
rsnObjDestroy(mContext, id);
}
native int rsnFileOpen(int con, byte[] name);
synchronized int nFileOpen(byte[] name) {
return rsnFileOpen(mContext, name);
}
native int rsnElementCreate(int con, int type, int kind, boolean norm, int vecSize);
synchronized int nElementCreate(int type, int kind, boolean norm, int vecSize) {
@@ -599,7 +595,7 @@ public class RenderScript {
void validate() {
if (mContext == 0) {
throw new IllegalStateException("Calling RS with no Context active.");
throw new RSInvalidStateException("Calling RS with no Context active.");
}
}

View File

@@ -68,10 +68,10 @@ public class RenderScriptGL extends RenderScript {
private void validateRange(int umin, int upref, int rmin, int rmax) {
if (umin < rmin || umin > rmax) {
throw new IllegalArgumentException("Minimum value provided out of range.");
throw new RSIllegalArgumentException("Minimum value provided out of range.");
}
if (upref < umin) {
throw new IllegalArgumentException("Prefered must be >= Minimum.");
throw new RSIllegalArgumentException("Prefered must be >= Minimum.");
}
}
@@ -93,7 +93,7 @@ public class RenderScriptGL extends RenderScript {
public void setSamples(int minimum, int prefered, float Q) {
validateRange(minimum, prefered, 0, 24);
if (Q < 0.0f || Q > 1.0f) {
throw new IllegalArgumentException("Quality out of 0-1 range.");
throw new RSIllegalArgumentException("Quality out of 0-1 range.");
}
mSamplesMin = minimum;
mSamplesPref = prefered;
@@ -188,33 +188,6 @@ public class RenderScriptGL extends RenderScript {
nContextBindProgramVertex(safeID(p));
}
//////////////////////////////////////////////////////////////////////////////////
// File
public class File extends BaseObj {
File(int id) {
super(id, RenderScriptGL.this);
}
}
public File fileOpen(String s) throws IllegalStateException, IllegalArgumentException
{
if(s.length() < 1) {
throw new IllegalArgumentException("fileOpen does not accept a zero length string.");
}
try {
byte[] bytes = s.getBytes("UTF-8");
int id = nFileOpen(bytes);
return new File(id);
} catch (java.io.UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
}
}

View File

@@ -136,7 +136,7 @@ public class Type extends BaseObj {
public Builder(RenderScript rs, Element e) {
if(e.mID == 0) {
throw new IllegalArgumentException("Invalid element.");
throw new RSIllegalArgumentException("Invalid element.");
}
mRS = rs;
@@ -147,7 +147,7 @@ public class Type extends BaseObj {
public void add(Dimension d, int value) {
if(value < 1) {
throw new IllegalArgumentException("Values of less than 1 for Dimensions are not valid.");
throw new RSIllegalArgumentException("Values of less than 1 for Dimensions are not valid.");
}
if(mDimensions.length >= mEntryCount) {
Dimension[] dn = new Dimension[mEntryCount + 8];

View File

@@ -118,18 +118,6 @@ nObjDestroy(JNIEnv *_env, jobject _this, RsContext con, jint obj)
rsObjDestroy(con, (void *)obj);
}
static jint
nFileOpen(JNIEnv *_env, jobject _this, RsContext con, jbyteArray str)
{
LOG_API("nFileOpen, con(%p)", con);
jint len = _env->GetArrayLength(str);
jbyte * cptr = (jbyte *) _env->GetPrimitiveArrayCritical(str, 0);
jint ret = (jint)rsFileOpen(con, (const char *)cptr, len);
_env->ReleasePrimitiveArrayCritical(str, cptr, JNI_ABORT);
return ret;
}
// ---------------------------------------------------------------------------
static jint
@@ -1247,7 +1235,6 @@ static JNINativeMethod methods[] = {
{"rsnGetName", "(II)Ljava/lang/String;", (void*)nGetName },
{"rsnObjDestroy", "(II)V", (void*)nObjDestroy },
{"rsnFileOpen", "(I[B)I", (void*)nFileOpen },
{"rsnFileA3DCreateFromAssetStream", "(II)I", (void*)nFileA3DCreateFromAssetStream },
{"rsnFileA3DGetNumIndexEntries", "(II)I", (void*)nFileA3DGetNumIndexEntries },
{"rsnFileA3DGetIndexEntries", "(III[I[Ljava/lang/String;)V", (void*)nFileA3DGetIndexEntries },