public void tag(int tagType2,boolean longTag3,byte[] contents2) throws IOException {
  byte[] contents=contents2;
  int length=(contents != null) ? contents.length : 0;
  boolean longTag2=(length > 62) || longTag3;
  int hdr=(tagType2 << 6) + (longTag2 ? 0x3f : length);
  out.writeUI16(hdr);
  if (longTag2) {
    out.writeUI32(length);
  }
  if (contents != null) {
    out.write(contents);
  }
  if (tagType2 == SWFConstants.TAG_SHOWFRAME) {
    frameCount++;
  }
  if (tagType2 == SWFConstants.TAG_END) {
    out.flush();
    contents=bytes.toByteArray();
    out=null;
    bytes=null;
    byte[] fc=OutStream.uintTo2Bytes(frameCount);
    contents[2]=fc[0];
    contents[3]=fc[1];
    tags.tag(tagType,longTag,contents);
  }
}

public void tag ( int tagType2 , boolean longTag3 , byte [ ] contents2 ) throws IOException { byte [ ] contents = contents2 ; int length = ( contents != null ) ? contents . length : 0 ; boolean longTag2 = ( length > 62 ) || longTag3 ; int hdr = ( tagType2 << 6 ) + ( longTag2 ? 0x3f : length ) ; out . writeUI16 ( hdr ) ; if ( longTag2 ) { out . writeUI32 ( length ) ; } if ( contents != null ) { out . write ( contents ) ; } if ( tagType2 == SWFConstants . TAG_SHOWFRAME ) { frameCount ++ ; } if ( tagType2 == SWFConstants . TAG_END ) { out . flush ( ) ; contents = bytes . toByteArray ( ) ; out = null ; bytes = null ; byte [ ] fc = OutStream . uintTo2Bytes ( frameCount ) ; contents [ 2 ] = fc [ 0 ] ; contents [ 3 ] = fc [ 1 ] ; tags . tag ( tagType , longTag , contents ) ; } }
description of the method
