// Yeah this subclass relationship is nasty sclass ManagedIntObjects_v1_virtual extends ManagedIntObjects_v1 { replace Addr with int. replace BoxedAddr with Int. IIntMemory vmem; *(IIntMemory *vmem) { mem = null; } public long size() { ret (int) vmem.size(); } public int get(Addr i) { ret vmem.get(i); } public void set(Addr i, int val) { vmem.set(i, val); } int[] readIntArray(BoxedAddr ptr) { if (ptr == 0) null; int n = get(ptr++); int[] a = new[n]; for i to n: a[i] = get(ptr+i); ret a; } void fillMem(int start, int end, int value) { for (int i = start; i < end; i++) set(i, value); } void memCopy(int src, int dest, int n) { for i to n: set(dest+i, get(src+i)); } }