finalizervisitor.java
来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 63 行
JAVA
63 行
/*
* $Id: FinalizerVisitor.java,v 1.1 2004/02/18 06:59:20 epr Exp $
*/
package org.jnode.vm.memmgr.def;
import org.jnode.vm.ObjectVisitor;
import org.jnode.vm.classmgr.ObjectFlags;
import org.jnode.vm.classmgr.VmClassType;
import org.jnode.vm.classmgr.VmMethod;
import org.jnode.vm.memmgr.HeapHelper;
final class FinalizerVisitor extends ObjectVisitor implements ObjectFlags {
/** My heap helper */
private final HeapHelper helper;
/** The heap that is currently being visited */
private VmAbstractHeap currentHeap;
/**
* Initialize this instance.
*
* @param helper
*/
public FinalizerVisitor(HeapHelper helper) {
this.helper = helper;
}
/**
* @see org.jnode.vm.ObjectVisitor#visit(java.lang.Object)
*/
public boolean visit(Object object) {
final int color = helper.getObjectColor(object);
if (color == GC_YELLOW) {
final VmClassType type = helper.getVmClass(object);
final VmMethod fm = type.getFinalizeMethod();
if (fm != null) {
try {
helper.invokeFinalizer(fm, object);
} catch (Throwable ex) {
// Ignore error in finalize
}
}
helper.setFinalized(object);
}
return true;
}
/**
* @return Returns the currentHeap.
*/
public final VmAbstractHeap getCurrentHeap() {
return this.currentHeap;
}
/**
* @param currentHeap
* The currentHeap to set.
*/
public final void setCurrentHeap(VmAbstractHeap currentHeap) {
this.currentHeap = currentHeap;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?