private void defaultWriteFields(Object obj, ObjectStreamClass desc) throws IOException {
    desc.checkDefaultSerialize();

    byte[] primVals = new byte[desc.getPrimDataSize()];
    desc.getPrimFieldValues(obj, primVals);
    write(primVals);

    Object[] objVals = new Object[desc.getNumObjFields()];
    desc.getObjFieldValues(obj, objVals);
    for (int i = 0; i < objVals.length; i++) {
      writeObject(objVals[i]);
    }
  }