Validate context when using RS objects.
BUG=6035422
Change-Id: I8586be0085b36767289e1f634111c0ff076cec3c
diff --git a/graphics/java/android/renderscript/BaseObj.java b/graphics/java/android/renderscript/BaseObj.java
index 2e55c48..f464f9b 100644
--- a/graphics/java/android/renderscript/BaseObj.java
+++ b/graphics/java/android/renderscript/BaseObj.java
@@ -43,16 +43,22 @@
* Lookup the native object ID for this object. Primarily used by the
* generated reflected code.
*
+ * @param rs Context to verify against internal context for
+ * match.
*
* @return int
*/
- int getID() {
+ int getID(RenderScript rs) {
+ mRS.validate();
if (mDestroyed) {
throw new RSInvalidStateException("using a destroyed object.");
}
if (mID == 0) {
throw new RSRuntimeException("Internal error: Object id 0.");
}
+ if ((rs != null) && (rs != mRS)) {
+ throw new RSInvalidStateException("using object with mismatched context.");
+ }
return mID;
}
@@ -138,7 +144,7 @@
*/
void updateFromNative() {
mRS.validate();
- mName = mRS.nGetName(getID());
+ mName = mRS.nGetName(getID(mRS));
}
/**