From 9e4e4272d3f686e750a13d2111b0fb7041db2f4a Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Tue, 31 Aug 2021 17:21:33 +0000 Subject: all: introduce a prog.Call constructor Create a constructor for the prog.Call type. It allows to reduce the duplication of code now and during further changes. --- prog/encoding.go | 7 ++----- prog/prog.go | 8 ++++++++ prog/rand.go | 5 +---- 3 files changed, 11 insertions(+), 9 deletions(-) (limited to 'prog') diff --git a/prog/encoding.go b/prog/encoding.go index b389fc10d..de0e324b1 100644 --- a/prog/encoding.go +++ b/prog/encoding.go @@ -263,11 +263,8 @@ func (p *parser) parseProg() (*Prog, error) { if meta == nil { return nil, fmt.Errorf("unknown syscall %v", name) } - c := &Call{ - Meta: meta, - Ret: MakeReturnArg(meta.Ret), - Comment: p.comment, - } + c := MakeCall(meta, nil) + c.Comment = p.comment prog.Calls = append(prog.Calls, c) p.Parse('(') for i := 0; p.Char() != ')'; i++ { diff --git a/prog/prog.go b/prog/prog.go index bcc86fb02..576348085 100644 --- a/prog/prog.go +++ b/prog/prog.go @@ -20,6 +20,14 @@ type Call struct { Comment string } +func MakeCall(meta *Syscall, args []Arg) *Call { + return &Call{ + Meta: meta, + Args: args, + Ret: MakeReturnArg(meta.Ret), + } +} + type Arg interface { Type() Type Dir() Dir diff --git a/prog/rand.go b/prog/rand.go index 7ab5068cb..f36cb0822 100644 --- a/prog/rand.go +++ b/prog/rand.go @@ -551,10 +551,7 @@ func (r *randGen) generateParticularCall(s *state, meta *Syscall) (calls []*Call if meta.Attrs.Disabled { panic(fmt.Sprintf("generating disabled call %v", meta.Name)) } - c := &Call{ - Meta: meta, - Ret: MakeReturnArg(meta.Ret), - } + c := MakeCall(meta, nil) c.Args, calls = r.generateArgs(s, meta.Args, DirIn) r.target.assignSizesCall(c) return append(calls, c) -- cgit mrf-deployment