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

View File

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