@Override
 public Name fromChars(char[] cs, int start, int len) {
   int nc = this.nc;
   byte[] bytes = this.bytes;
   while (nc + len * 3 >= bytes.length) {
     // System.err.println("doubling name buffer of length " + names.length +
     // " to fit " + len + " chars");//DEBUG
     byte[] newnames = new byte[bytes.length * 2];
     System.arraycopy(bytes, 0, newnames, 0, bytes.length);
     bytes = this.bytes = newnames;
   }
   int nbytes = Convert.chars2utf(cs, start, bytes, nc, len) - nc;
   int h = hashValue(bytes, nc, nbytes) & hashMask;
   NameImpl n = hashes[h];
   while (n != null
       && (n.getByteLength() != nbytes || !equals(bytes, n.index, bytes, nc, nbytes))) {
     n = n.next;
   }
   if (n == null) {
     n = new NameImpl(this);
     n.index = nc;
     n.length = nbytes;
     n.next = hashes[h];
     hashes[h] = n;
     this.nc = nc + nbytes;
     if (nbytes == 0) {
       this.nc++;
     }
   }
   return n;
 }
 @Override
 public Name fromUtf(byte[] cs, int start, int len) {
   int h = hashValue(cs, start, len) & hashMask;
   NameImpl n = hashes[h];
   byte[] names = this.bytes;
   while (n != null && (n.getByteLength() != len || !equals(names, n.index, cs, start, len))) {
     n = n.next;
   }
   if (n == null) {
     int nc = this.nc;
     while (nc + len > names.length) {
       // System.err.println("doubling name buffer of length + " + names.length
       // + " to fit " + len + " bytes");//DEBUG
       byte[] newnames = new byte[names.length * 2];
       System.arraycopy(names, 0, newnames, 0, names.length);
       names = this.bytes = newnames;
     }
     System.arraycopy(cs, start, names, nc, len);
     n = new NameImpl(this);
     n.index = nc;
     n.length = len;
     n.next = hashes[h];
     hashes[h] = n;
     this.nc = nc + len;
     if (len == 0) {
       this.nc++;
     }
   }
   return n;
 }
 @Override
 void setName(String newname, String applyToSheetName) {
   super.setName(newname, applyToSheetName);
   this._table.setName(newname);
   this._table.setDisplayName(newname);
 }