diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-06-27 13:24:49 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-06-27 15:01:56 +0200 |
commit | 19aa95fc7f4cd58dcc8a8ff075762cfc86d41dc3 (patch) | |
tree | 59b96d8099fb7a18e7e55ba9a115163c9dea6043 /common/maps/params.go | |
parent | 923dd9d1c1f649142f3f377109318b07e0f44d5d (diff) |
Fix config handling with empty config entries after merge
Fixes #8701
Diffstat (limited to 'common/maps/params.go')
-rw-r--r-- | common/maps/params.go | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/common/maps/params.go b/common/maps/params.go index e5a1bd07d..c14026df7 100644 --- a/common/maps/params.go +++ b/common/maps/params.go @@ -52,6 +52,24 @@ func (p Params) Set(pp Params) { } } +// IsZero returns true if p is considered empty. +func (p Params) IsZero() bool { + if p == nil || len(p) == 0 { + return true + } + + if len(p) > 1 { + return false + } + + for k, _ := range p { + return k == mergeStrategyKey + } + + return false + +} + // Merge transfers values from pp to p for new keys. // This is done recursively. func (p Params) Merge(pp Params) { @@ -82,12 +100,9 @@ func (p Params) merge(ps ParamsMergeStrategy, pp Params) { if pv, ok := v.(Params); ok { vvv.merge(ms, pv) } - } - } else if !noUpdate { p[k] = v - } } |