System.arraycopy(superCls.referenceOffsets, 0, referenceOffsets, 0, startRefIdx);
System.arraycopy(superRefOffsets, 0, referenceOffsets, 0, startRefIdx);
	protected void prepareForInstantiation() {		// Step 3: Calculate the object size		final VmNormalClass superCls = getSuperClass();		int sc_size = (superCls != null) ? superCls.objectSize : 0;		objectSize += sc_size;		// Step 4a: Fix the offset for all declared non-static fields		final int cnt = getNoDeclaredFields();		int refOffsetsSize = (superCls != null) ? superCls.referenceOffsets.length : 0;		int startRefIdx = refOffsetsSize; 		for (int i = 0; i < cnt; i++) {			final VmField field = getDeclaredField(i);			//fs.resolve(loader);			if (!field.isStatic()) {				final VmInstanceField inf = (VmInstanceField)field;				inf.resolveOffset(sc_size);				if (!field.isPrimitive()) {					if (!field.isAddressType()) {						refOffsetsSize++;					} else {						//System.out.println("Found address in field " + fs.getName());					}				}			}		}				// Step 4b: Create the referenceOffsets field		referenceOffsets = new int[refOffsetsSize];		if (superCls != null) {			System.arraycopy(superCls.referenceOffsets, 0, referenceOffsets, 0, startRefIdx);		}		for (int i = 0; i < cnt; i++) {			final VmField field = getDeclaredField(i);			if (!field.isStatic()) {				final VmInstanceField inf = (VmInstanceField)field;				if (!field.isPrimitive()) {					if (!field.isAddressType()) {						referenceOffsets[startRefIdx++] = inf.getOffset();					}				}			}		}		 	}