// ----------------------------------------------------------------- // // Private Methods // // ----------------------------------------------------------------- #region Private Methods /// <summary> /// Prepends a field to this padded command. Alignment is not updated. /// </summary> /// <remarks> /// /// </remarks> private void PrependField(McgField field) { Helpers.CodeGenHelpers.AlignmentEntry entry = new Helpers.CodeGenHelpers.AlignmentEntry(field, false, false); List <Helpers.CodeGenHelpers.AlignmentEntry> entries = new List <Helpers.CodeGenHelpers.AlignmentEntry>(m_paddedStructData.AlignmentEntries); // // Update the existing field offsets // foreach (Helpers.CodeGenHelpers.AlignmentEntry existingEntry in entries) { existingEntry.Offset += field.Type.UnpaddedSize; } // // Prepend the new entry and write back the result // entries.Insert(0, entry); m_paddedStructData.AlignmentEntries = entries.ToArray(); m_paddedStructData.PaddedSize += field.Type.UnpaddedSize; }
/// <summary> /// Appends a field to this padded command. Alignment is not updated. /// </summary> /// <remarks> /// /// </remarks> private void AppendField(McgField field) { Helpers.CodeGenHelpers.AlignmentEntry entry = new Helpers.CodeGenHelpers.AlignmentEntry(field, false, false); List <Helpers.CodeGenHelpers.AlignmentEntry> entries = new List <Helpers.CodeGenHelpers.AlignmentEntry>(m_paddedStructData.AlignmentEntries); entries.Add(entry); m_paddedStructData.AlignmentEntries = entries.ToArray(); m_paddedStructData.PaddedSize += field.Type.UnpaddedSize; }