Chromium Code Reviews| Index: common/errors/multierror.go |
| diff --git a/common/errors/multierror.go b/common/errors/multierror.go |
| index df812b643251d497f1f01b0a17014acb78b28687..9c02c558f65daca0e753df73842f368b3aedd5a4 100644 |
| --- a/common/errors/multierror.go |
| +++ b/common/errors/multierror.go |
| @@ -73,18 +73,26 @@ func MultiErrorFromErrors(ch <-chan error) error { |
| return ret |
| } |
| -// LazyMultiError is a lazily-constructed MultiError. You specify the target |
| -// MultiError size up front (as Size), and then you call Assign for each error |
| -// encountered, and it's potential index. The MultiError will only be allocated |
| -// if one of the Assign'd errors is non-nil. Similarly, Get will retrieve either |
| -// the allocated MultiError, or nil if no error was encountered. |
| +// LazyMultiError is a lazily-constructed MultiError. |
| +// |
| +// LazyMultiError is like MultiError, except that you know the ultimate size up |
| +// front, and then you call Assign for each error encountered, and it's |
| +// potential index. The underlying MultiError will only be allocated if one of |
| +// the Assign'd errors is non-nil. Similarly, Get will retrieve either the |
| +// allocated MultiError, or nil if no error was encountered. |
| +// Build one with NewLazy. |
| type LazyMultiError struct { |
|
M-A Ruel
2015/08/12 19:13:50
Why doesn't LazyMultiError have method Error() so
dnj (Google)
2015/08/14 16:40:00
If your goal is "only constructable", then LazyMul
iannucci
2015/08/14 17:00:26
Done
|
| sync.Mutex |
| - Size int |
| + size int |
|
tandrii_google
2015/08/14 08:50:36
wait, this doesn't make what CL description says.
iannucci
2015/08/14 17:00:26
done
|
| me MultiError |
| } |
| +// NewLazyMultiError makes a new LazyMultiError of the provided size. |
| +func NewLazyMultiError(size int) *LazyMultiError { |
| + return &LazyMultiError{size: size} |
| +} |
| + |
| // Assign semantically assigns the error to the given index in the MultiError. |
| // If the error is nil, no action is taken. Otherwise the MultiError is |
| // allocated to its full size (if not already), and the error assigned into it. |
| @@ -97,7 +105,7 @@ func (e *LazyMultiError) Assign(i int, err error) bool { |
| e.Lock() |
| defer e.Unlock() |
| if e.me == nil { |
| - e.me = make(MultiError, e.Size) |
| + e.me = make(MultiError, e.size) |
| } |
| e.me[i] = err |
| return true |