diff options
author | Jason Sams <rjsams@android.com> | 2010-11-09 17:11:40 -0800 |
---|---|---|
committer | Jason Sams <rjsams@android.com> | 2010-11-09 17:11:40 -0800 |
commit | 06d69de78845659e6904ae4964e606a7f1a6a4a8 (patch) | |
tree | 15a497321026614c8338e40305b32e43b0a0ff31 /graphics/java/android/renderscript/BaseObj.java | |
parent | 641b0628cd9d8be001fa445771d460b47ba1f6cb (diff) |
Continue error check improvements and write some docs.
Change-Id: I345b08490da21d9ee715ff1ddc80c1a816b579f4
Diffstat (limited to 'graphics/java/android/renderscript/BaseObj.java')
-rw-r--r-- | graphics/java/android/renderscript/BaseObj.java | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/graphics/java/android/renderscript/BaseObj.java b/graphics/java/android/renderscript/BaseObj.java index 69907d988dde..026f7de10bcd 100644 --- a/graphics/java/android/renderscript/BaseObj.java +++ b/graphics/java/android/renderscript/BaseObj.java @@ -21,9 +21,12 @@ import android.util.Log; /** * @hide * + * BaseObj is the base class for interfacing with native renderscript objects. + * It primarly contains code for tracking the native object ID and forcably + * disconecting the object from the native allocation for early cleanup. + * **/ class BaseObj { - BaseObj(int id, RenderScript rs) { rs.validate(); mRS = rs; @@ -31,6 +34,13 @@ class BaseObj { mDestroyed = false; } + void setID(int id) { + if (mID != 0) { + throw new RSRuntimeException("Internal Error, reset of object ID."); + } + mID = id; + } + public int getID() { if (mDestroyed) { throw new RSInvalidStateException("using a destroyed object."); @@ -38,9 +48,9 @@ class BaseObj { return mID; } - int mID; - boolean mDestroyed; - String mName; + private int mID; + private boolean mDestroyed; + private String mName; RenderScript mRS; public void setName(String s) { @@ -74,7 +84,7 @@ class BaseObj { super.finalize(); } - public void destroy() { + synchronized public void destroy() { if(mDestroyed) { throw new RSInvalidStateException("Object already destroyed."); } @@ -85,6 +95,8 @@ class BaseObj { // If an object came from an a3d file, java fields need to be // created with objects from the native layer void updateFromNative() { + mRS.validate(); + mName = mRS.nGetName(getID()); } } |