private Index makeTagGroupIndex(byte tagGroupTag,byte[] tagsInGroup){
  if (indexByTagGroup == null)   indexByTagGroup=new Index[CONSTANT_GroupLimit - CONSTANT_GroupFirst];
  int which=tagGroupTag - CONSTANT_GroupFirst;
  assert (indexByTagGroup[which] == null);
  int fillp=0;
  Entry[] cpMap=null;
  for (int pass=1; pass <= 2; pass++) {
    untypedIndexOf(null);
    for (    byte tag : tagsInGroup) {
      Index ix=indexByTag[tag];
      if (ix == null)       continue;
      int ixLen=ix.cpMap.length;
      if (ixLen == 0)       continue;
      assert (tagGroupTag == CONSTANT_All ? fillp == untypedFirstIndexByTag[tag] : fillp < untypedFirstIndexByTag[tag]);
      if (cpMap != null) {
        assert (cpMap[fillp] == null);
        assert (cpMap[fillp + ixLen - 1] == null);
        System.arraycopy(ix.cpMap,0,cpMap,fillp,ixLen);
      }
      fillp+=ixLen;
    }
    if (cpMap == null) {
      assert (pass == 1);
      cpMap=new Entry[fillp];
      fillp=0;
    }
  }
  indexByTagGroup[which]=new Index(tagName(tagGroupTag),cpMap);
  return indexByTagGroup[which];
}

private Index makeTagGroupIndex ( byte tagGroupTag , byte [ ] tagsInGroup ) { if ( indexByTagGroup == null ) indexByTagGroup = new Index [ CONSTANT_GroupLimit - CONSTANT_GroupFirst ] ; int which = tagGroupTag - CONSTANT_GroupFirst ; assert ( indexByTagGroup [ which ] == null ) ; int fillp = 0 ; Entry [ ] cpMap = null ; for ( int pass = 1 ; pass <= 2 ; pass ++ ) { untypedIndexOf ( null ) ; for ( byte tag : tagsInGroup ) { Index ix = indexByTag [ tag ] ; if ( ix == null ) continue ; int ixLen = ix . cpMap . length ; if ( ixLen == 0 ) continue ; assert ( tagGroupTag == CONSTANT_All ? fillp == untypedFirstIndexByTag [ tag ] : fillp < untypedFirstIndexByTag [ tag ] ) ; if ( cpMap != null ) { assert ( cpMap [ fillp ] == null ) ; assert ( cpMap [ fillp + ixLen - 1 ] == null ) ; System . arraycopy ( ix . cpMap , 0 , cpMap , fillp , ixLen ) ; } fillp += ixLen ; } if ( cpMap == null ) { assert ( pass == 1 ) ; cpMap = new Entry [ fillp ] ; fillp = 0 ; } } indexByTagGroup [ which ] = new Index ( tagName ( tagGroupTag ) , cpMap ) ; return indexByTagGroup [ which ] ; }
index of all cp entries of all types , in definition order .
