Merge "Fixed BaseObj finalizer and destroy()" into nyc-dev

This commit is contained in:
Yang Ni
2016-04-22 19:48:32 +00:00
committed by Android (Google) Code Review
2 changed files with 5 additions and 15 deletions

View File

@@ -392,8 +392,6 @@ public class Allocation extends BaseObj {
protected void finalize() throws Throwable {
RenderScript.registerNativeFree.invoke(RenderScript.sRuntime, mSize);
// Set mType null to avoid double-destroying it in case its finalizer races ahead
mType = null;
super.finalize();
}
@@ -2615,7 +2613,6 @@ public class Allocation extends BaseObj {
if (mType != null && mOwningType) {
mType.destroy();
mType = null;
}
super.destroy();

View File

@@ -1066,19 +1066,12 @@ public final class ScriptGroup extends BaseObj {
*/
public void destroy() {
super.destroy();
for(Closure c : mClosures) {
c.destroy();
}
}
protected void finalize() throws Throwable {
// Clear out the list mClosures to avoid double-destroying the closures,
// in case their finalizers race ahead.
// ScriptGroup created using the old Builder class does not
// initialize the field mClosures
if (mClosures != null) {
// ScriptGroup created using the old Builder class does not
// initialize the field mClosures
mClosures.clear();
for (Closure c : mClosures) {
c.destroy();
}
}
super.finalize();
}
}