// returns objects of given type as well as it's subtypes
private List/*<ObjectReference>*/ objectsBySubType(ReferenceType type) {
final List objects = new ArrayList(0);
final ReferenceType givenType = type;
saObjectHeap.iterate(new DefaultHeapVisitor() {
public boolean doObj(Oop oop) {
ReferenceTypeImpl curType = (ReferenceTypeImpl) referenceType(oop.getKlass());
if (curType.isAssignableTo(givenType)) {
objects.add(objectMirror(oop));
}