code: int getIndex (Name name) {
              int h = name.hashCode();
              int i = h & hashMask;
              // The expression below is always odd, so it is guaranteed
              // to be mutually prime with table.length, a power of 2.
              int x = hashMask - ((h + (h >> 16)) << 1);
              int d = -1; // Index of a deleted item.
              for (;;) {
                  Entry e = table[i];
                  if (e == null)
                      return d >= 0 ? d : i;
                  if (e == sentinel) {
                      // We have to keep searching even if we see a deleted item.
                      // However, remember the index in case we fail to find the name.
                      if (d < 0)
                          d = i;
                  } else if (e.sym.name == name)
                      return i;
                  i = (i + x) & hashMask;
              }
          }
docs: Look for slot in the table.
  We use open addressing with double hashing.