diff options
author | Yang Ni <yangni@google.com> | 2016-04-01 00:33:57 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-04-01 00:33:58 +0000 |
commit | 0c6ed67c3ab80f406d31a2e4d666a680e62cb83c (patch) | |
tree | f64f3fe55b23960c162a4793304ce60b434611bc /rs/java/android/renderscript/BaseObj.java | |
parent | b8572b3d50475918d3e2b25961b7c6189d6af39e (diff) | |
parent | 6484b6be5ca5233614d0a8991a5d909543824fc7 (diff) |
Merge "Added CloseGuard for BaseObj" into nyc-dev
Diffstat (limited to 'rs/java/android/renderscript/BaseObj.java')
-rw-r--r-- | rs/java/android/renderscript/BaseObj.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/rs/java/android/renderscript/BaseObj.java b/rs/java/android/renderscript/BaseObj.java index 1372ab79e264..f95af1673730 100644 --- a/rs/java/android/renderscript/BaseObj.java +++ b/rs/java/android/renderscript/BaseObj.java @@ -16,6 +16,7 @@ package android.renderscript; +import dalvik.system.CloseGuard; import java.util.concurrent.locks.ReentrantReadWriteLock; /** @@ -69,6 +70,7 @@ public class BaseObj { } private long mID; + final CloseGuard guard = CloseGuard.get(); private boolean mDestroyed; private String mName; RenderScript mRS; @@ -119,6 +121,7 @@ public class BaseObj { } if (shouldDestroy) { + guard.close(); // must include nObjDestroy in the critical section ReentrantReadWriteLock.ReadLock rlock = mRS.mRWLock.readLock(); rlock.lock(); @@ -133,8 +136,14 @@ public class BaseObj { } protected void finalize() throws Throwable { - helpDestroy(); - super.finalize(); + try { + if (guard != null) { + guard.warnIfOpen(); + } + helpDestroy(); + } finally { + super.finalize(); + } } /** |