code: static long adjustForField(long sizeSoFar, final Field f) {
      final Class<?> type = f.getType();
      final int fsize = type.isPrimitive() ? primitiveSizes.get(type) : NUM_BYTES_OBJECT_REF;
      // TODO: No alignments based on field type/ subclass fields alignments?
      return sizeSoFar + fsize;
    }
docs: This method returns the maximum representation size of an object. <code>sizeSoFar</code>
  is the object's size measured so far. <code>f</code> is the field being probed.
  
  <p>The returned offset will be the maximum of whatever was measured so far and
  <code>f</code> field's offset and representation size (unaligned).