Merge "Fixed BaseObj finalizer and destroy()" into nyc-dev
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user