private int addName(String name, int[] q, int qlen) { switch (qlen) { case 1: return addName(name, q[0]); case 2: return addName(name, q[0], q[1]); case 3: return addName(name, q[0], q[1], q[2]); } final int index = _count; final int hash = calcHash(q, qlen); int offset = _findOffsetForAdd(hash); _hashArea[offset] = hash; int longStart = _appendLongName(q, qlen); _hashArea[offset+1] = longStart; _hashArea[offset+3] = _lengthAndIndex(qlen); // increases _count return index; }