public override void Write(IO.EndianWriter stream)
            {
                Compiler comp = stream.Owner as Compiler;

                #region FieldSets
                uint            fieldSetsAddress = stream.PositionUnsigned;
                FieldSet        temp             = new FieldSet();
                Import.FieldSet fs;
                int             x;
                for (x = 0; x < tagBlock.FieldSets.Count - 1; x++)
                {
                    fs = tagBlock.FieldSets[x];
                    temp.Reset(fs);
                    temp.Write(stream);
                }

                uint fieldSetLatestAddress = stream.PositionUnsigned;
                fs = tagBlock.FieldSets[x];
                temp.Reset(fs);
                temp.Write(stream);
                #endregion

                comp.MarkLocationFixup(tagBlock.Name, stream, false);

                RuntimeAddress = stream.PositionUnsigned;
                stream.Write(tagBlock.Name);
                stream.Write(tagBlock.DisplayName);
                stream.Write((int)0);
                stream.Write(tagBlock.MaxElements);
                stream.Write(comp.Strings.GetNull());
                stream.WritePointer(fieldSetsAddress);
                stream.Write(tagBlock.FieldSets.Count);
                stream.WritePointer(fieldSetLatestAddress);
                stream.Write((int)0);
                stream.Write((int)0);
                stream.Write((int)0);
                stream.Write((int)0);
                stream.Write((int)0);
                stream.Write((int)0);
                stream.Write((int)0);
            }
示例#2
0
			public override void Write(IO.EndianWriter stream)
			{
				Compiler comp = stream.Owner as Compiler;

				#region FieldSets
				uint fieldSetsAddress = stream.PositionUnsigned;
				FieldSet temp = new FieldSet();
				Import.FieldSet fs;
				int x;
				for (x = 0; x < tagBlock.FieldSets.Count - 1; x++)
				{
					fs = tagBlock.FieldSets[x];
					temp.Reset(fs);
					temp.Write(stream);
				}

				uint fieldSetLatestAddress = stream.PositionUnsigned;
				fs = tagBlock.FieldSets[x];
				temp.Reset(fs);
				temp.Write(stream);
				#endregion

				comp.MarkLocationFixup(tagBlock.Name, stream, false);

				RuntimeAddress = stream.PositionUnsigned;
				stream.Write(tagBlock.Name);
				stream.Write(tagBlock.DisplayName);
				stream.Write((int)0);
				stream.Write(tagBlock.MaxElements);
				stream.Write(comp.Strings.GetNull());
				stream.WritePointer(fieldSetsAddress);
				stream.Write(tagBlock.FieldSets.Count);
				stream.WritePointer(fieldSetLatestAddress);
				stream.Write((int)0);
				stream.Write((int)0);
				stream.Write((int)0);
				stream.Write((int)0);
				stream.Write((int)0);
				stream.Write((int)0);
				stream.Write((int)0);
			}