From 16e21d13ea26a631e9b3a30c94635b1d565fd78f Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Thu, 6 Jan 2022 15:07:49 +0100 Subject: pkg/compiler: refactor code Slightly refactor code in preparation for future changes. No functional changes intended. --- pkg/compiler/gen.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'pkg/compiler/gen.go') diff --git a/pkg/compiler/gen.go b/pkg/compiler/gen.go index bd487432a..b4ee50a9b 100644 --- a/pkg/compiler/gen.go +++ b/pkg/compiler/gen.go @@ -360,6 +360,10 @@ func (comp *compiler) layoutStructFields(t *prog.StructType, varlen, packed bool byteOffset += f.Size() } } + t.Fields = comp.finalizeStructFields(t, newFields, varlen, structAlign, byteOffset, bitOffset) +} + +func (comp *compiler) finalizeStructFields(t *prog.StructType, fields []prog.Field, varlen bool, structAlign, byteOffset, bitOffset uint64) []prog.Field { if bitOffset != 0 { pad := roundup(bitOffset, 8) / 8 byteOffset += pad @@ -367,7 +371,7 @@ func (comp *compiler) layoutStructFields(t *prog.StructType, varlen, packed bool if i != 0 && t.Fields[i-1].IsBitfield() { setBitfieldTypeSize(t.Fields[i-1].Type, pad) } else { - newFields = append(newFields, genPad(pad)) + fields = append(fields, genPad(pad)) } } @@ -376,9 +380,9 @@ func (comp *compiler) layoutStructFields(t *prog.StructType, varlen, packed bool } if !varlen && structAlign != 0 && byteOffset%structAlign != 0 { pad := structAlign - byteOffset%structAlign - newFields = append(newFields, genPad(pad)) + fields = append(fields, genPad(pad)) } - t.Fields = newFields + return fields } func roundup(v, a uint64) uint64 { -- cgit mrf-deployment