public void Write(SwfWriter writer) { writer.WriteUInt8((byte)Kind); switch (Kind) { case AbcConstKind.QName: case AbcConstKind.QNameA: { writer.WriteUIntEncoded((uint)Namespace.Index); writer.WriteUIntEncoded((uint)Name.Index); } break; case AbcConstKind.RTQName: case AbcConstKind.RTQNameA: { writer.WriteUIntEncoded((uint)Name.Index); } break; case AbcConstKind.RTQNameL: case AbcConstKind.RTQNameLA: { //This kind has no associated data. } break; case AbcConstKind.Multiname: case AbcConstKind.MultinameA: { writer.WriteUIntEncoded((uint)Name.Index); writer.WriteUIntEncoded((uint)NamespaceSet.Index); } break; case AbcConstKind.MultinameL: case AbcConstKind.MultinameLA: { writer.WriteUIntEncoded((uint)NamespaceSet.Index); } break; case AbcConstKind.TypeName: { writer.WriteUIntEncoded((uint)Type.Index); writer.WriteByte(1); writer.WriteUIntEncoded((uint)TypeParameter.Index); } break; default: throw new ArgumentOutOfRangeException(); } }
public void Write(SwfWriter writer) { int n = Count; writer.WriteUIntEncoded(n); for (int i = 0; i < n; ++i) { var dep = this[i]; writer.WriteByte((byte)dep.Type); dep.Write(writer); } }
public void Write(SwfWriter writer) { writer.WriteUIntEncoded((uint)SlotId); writer.WriteUIntEncoded((uint)Type.Index); if (HasValue) { writer.WriteConstIndex(_value); } else { writer.WriteByte(0); } }