From aa5d316816e43bb3614d2b9808a998c089222ab0 Mon Sep 17 00:00:00 2001 From: saxon Date: Sun, 13 Jan 2019 19:15:02 +1030 Subject: [PATCH] revid: made revid.Config() return copy of revid's config rather than pointer so that mutation isn't possible --- revid/revid.go | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/revid/revid.go b/revid/revid.go index 409ba702..ef8da970 100644 --- a/revid/revid.go +++ b/revid/revid.go @@ -181,13 +181,8 @@ func (r *Revid) Bitrate() int { } // Config returns the Revid's config. -func (r *Revid) Config() *Config { - // FIXME(kortschak): This is a massive footgun and should not exist. - // Since the config's fields are accessed in running goroutines, any - // mutation is a data race. With bad luck a data race is possible by - // reading the returned value since it is possible for the running - // Ravid to mutate the config it holds. - return &r.config +func (r *Revid) Config() Config { + return r.config } // reset swaps the current config of a Revid with the passed