void startEdit(){
  assert (verifyArity());
  int oc=ownedCount();
  assert (!inTrans());
  flags|=F_TRANS;
  Name[] oldNames=names;
  Name[] ownBuffer=(oc == 2 ? originalNames : null);
  assert (ownBuffer != oldNames);
  if (ownBuffer != null && ownBuffer.length >= length) {
    names=copyNamesInto(ownBuffer);
  }
 else {
    final int SLOP=2;
    names=Arrays.copyOf(oldNames,Math.max(length + SLOP,oldNames.length));
    if (oc < 2)     ++flags;
    assert (ownedCount() == oc + 1);
  }
  originalNames=oldNames;
  assert (originalNames != names);
  firstChange=length;
  assert (inTrans());
}

void startEdit ( ) { assert ( verifyArity ( ) ) ; int oc = ownedCount ( ) ; assert ( ! inTrans ( ) ) ; flags |= F_TRANS ; Name [ ] oldNames = names ; Name [ ] ownBuffer = ( oc == 2 ? originalNames : null ) ; assert ( ownBuffer != oldNames ) ; if ( ownBuffer != null && ownBuffer . length >= length ) { names = copyNamesInto ( ownBuffer ) ; } else { final int SLOP = 2 ; names = Arrays . copyOf ( oldNames , Math . max ( length + SLOP , oldNames . length ) ) ; if ( oc < 2 ) ++ flags ; assert ( ownedCount ( ) == oc + 1 ) ; } originalNames = oldNames ; assert ( originalNames != names ) ; firstChange = length ; assert ( inTrans ( ) ) ; }
create a private , writable copy of names . preserve the original copy , for reference .
