in core/src/main/java/com/jetbrains/sa/jdi/ReferenceTypeImpl.java [487:516]
public List<ObjectReferenceImpl> instances(long maxInstances) {
if (!vm.canGetInstanceInfo()) {
throw new UnsupportedOperationException(
"target does not support getting instances");
}
if (maxInstances < 0) {
throw new IllegalArgumentException("maxInstances is less than zero: "
+ maxInstances);
}
if (isAbstract() || (this instanceof InterfaceTypeImpl)) {
return Collections.emptyList();
}
final List<ObjectReferenceImpl> objects = new ArrayList<ObjectReferenceImpl>(0);
final Address givenKls = CompatibilityHelper.INSTANCE.getAddress(saKlass);
final long max = maxInstances;
vm.saObjectHeap().iterate(new DefaultHeapVisitor() {
private long instCount = 0;
public boolean doObj(Oop oop) {
if (givenKls.equals(CompatibilityHelper.INSTANCE.getKlassAddress(oop))) {
objects.add(vm.objectMirror(oop));
instCount++;
}
return max > 0 && instCount >= max;
}
});
return objects;
}