diff options
| author | aarzilli <[email protected]> | 2014-05-02 15:09:23 +0200 |
|---|---|---|
| committer | aarzilli <[email protected]> | 2014-05-02 15:09:23 +0200 |
| commit | cdbc8241c4be92fd4fbb6b7b819e84dce4a06850 (patch) | |
| tree | 46fa3d240fa2e2e4704c972f814ad94e4bc6ce72 /xgbgen/size.go | |
| parent | efcb6d44d2722be3a77fe5292f5bfd5e73ed7e48 (diff) | |
Fix Issue #21: automatic calculation of alignment padding after lists
Diffstat (limited to 'xgbgen/size.go')
| -rw-r--r-- | xgbgen/size.go | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/xgbgen/size.go b/xgbgen/size.go index 8836892..6e49371 100644 --- a/xgbgen/size.go +++ b/xgbgen/size.go @@ -7,24 +7,25 @@ package main // for adding and multiplying sizes. type Size struct { Expression + exact bool } // newFixedSize creates a new Size with some fixed and known value. -func newFixedSize(fixed uint) Size { - return Size{&Value{v: int(fixed)}} +func newFixedSize(fixed uint, exact bool) Size { + return Size{&Value{v: int(fixed)}, exact} } // newExpressionSize creates a new Size with some expression. -func newExpressionSize(variable Expression) Size { - return Size{variable} +func newExpressionSize(variable Expression, exact bool) Size { + return Size{variable, exact} } // Add adds s1 and s2 and returns a new Size. func (s1 Size) Add(s2 Size) Size { - return Size{newBinaryOp("+", s1, s2)} + return Size{newBinaryOp("+", s1, s2), s1.exact && s2.exact} } // Multiply mupltiplies s1 and s2 and returns a new Size. func (s1 Size) Multiply(s2 Size) Size { - return Size{newBinaryOp("*", s1, s2)} + return Size{newBinaryOp("*", s1, s2), s1.exact && s2.exact} } |
