summaryrefslogtreecommitdiff
path: root/rs/java/android/renderscript/BaseObj.java
diff options
context:
space:
mode:
authorYang Ni <yangni@google.com>2016-04-01 00:33:57 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2016-04-01 00:33:58 +0000
commit0c6ed67c3ab80f406d31a2e4d666a680e62cb83c (patch)
treef64f3fe55b23960c162a4793304ce60b434611bc /rs/java/android/renderscript/BaseObj.java
parentb8572b3d50475918d3e2b25961b7c6189d6af39e (diff)
parent6484b6be5ca5233614d0a8991a5d909543824fc7 (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.java13
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();
+ }
}
/**