private int getOrInsertNameAndType(int nameIndex, int typeIndex) throws IOException {
   int nameAndTypeIndex = constantPool.lookForNameAndTypeReference(nameIndex, typeIndex);
   if (nameAndTypeIndex == -1) {
     nameAndTypeIndex = constantPool.poolSize() + 1;
     NameAndTypeConstant nameAndType = new NameAndTypeConstant(nameIndex, typeIndex);
     constantPool.add(nameAndType);
     nameAndType.serializeToStream(constantStream);
   }
   return nameAndTypeIndex;
 }