code: private void remapComposite(FontFileReader in, Map glyphs,
                                  int glyphOffset,
                                  Integer glyphIdx) throws IOException {
          int offset = glyphOffset + (int)mtxTab[glyphIdx.intValue()].getOffset()
                       + 10;
  
          Integer compositeIdx = null;
          int flags = 0;
          boolean moreComposites = true;
  
          while (moreComposites) {
              flags = in.readTTFUShort(offset);
              compositeIdx = new Integer(in.readTTFUShort(offset + 2));
              Integer newIdx = (Integer)glyphs.get(compositeIdx);
              if (newIdx == null) {
                  // This errormessage would look much better
                  // if the fontname was printed to
                  //log.error("An embedded font "
                  //                     + "contains bad glyph data. "
                  //                     + "Characters might not display "
                  //                     + "correctly.");
                  moreComposites = false;
                  continue;
              }
  
              in.writeTTFUShort(offset + 2, newIdx.intValue());
  
              offset += 4;
  
              if ((flags & 1) > 0) {
                  // ARG_1_AND_ARG_2_ARE_WORDS
                  offset += 4;
              } else {
                  offset += 2;
              }
  
              if ((flags & 8) > 0) {
                  offset += 2;    // WE_HAVE_A_SCALE
              } else if ((flags & 64) > 0) {
                  offset += 4;    // WE_HAVE_AN_X_AND_Y_SCALE
              } else if ((flags & 128) > 0) {
                  offset += 8;    // WE_HAVE_A_TWO_BY_TWO
              }
  
              if ((flags & 32) > 0) {
                  moreComposites = true;
              } else {
                  moreComposites = false;
              }
          }
      }
docs: Rewrite all compositepointers in glyphindex glyphIdx
  
  @param in The input from which to remap
  @param glyphs The glyphs to remap
  @param glyphOffset The offset to start at
  @param glyphIdx The index of the glyph
  @throws IOException Indicates a failure to read from the font file.