diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-05-05 10:25:45 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-05-05 10:25:45 +0200 |
| commit | afe402d20af0d54d4e0baeb9e70e668e2a26f188 (patch) | |
| tree | 58f79c51ee9c8a48939059a23c47d68751d55701 /prog/clone.go | |
| parent | 9dfb5efa91fc0f051a1ddc88ace2867bb6b32275 (diff) | |
prog: make c.Ret optional
No reason to allocate return value if there is no return type.
c.Ret == nil is the reasonable indication that this is a "void" call.
Diffstat (limited to 'prog/clone.go')
| -rw-r--r-- | prog/clone.go | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/prog/clone.go b/prog/clone.go index 51d801e28..3b6ba0fbc 100644 --- a/prog/clone.go +++ b/prog/clone.go @@ -12,7 +12,9 @@ func (p *Prog) Clone() *Prog { for ci, c := range p.Calls { c1 := new(Call) c1.Meta = c.Meta - c1.Ret = clone(c.Ret, newargs).(*ResultArg) + if c.Ret != nil { + c1.Ret = clone(c.Ret, newargs).(*ResultArg) + } c1.Args = make([]Arg, len(c.Args)) for ai, arg := range c.Args { c1.Args[ai] = clone(arg, newargs) |
