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 {
|
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();
|
||||||
|
|||||||
@@ -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();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user