summaryrefslogtreecommitdiff
path: root/vendor/github.com/imdario/mergo/mergo.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/imdario/mergo/mergo.go')
-rw-r--r--vendor/github.com/imdario/mergo/mergo.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/vendor/github.com/imdario/mergo/mergo.go b/vendor/github.com/imdario/mergo/mergo.go
index f8a0991ec..a82fea2fd 100644
--- a/vendor/github.com/imdario/mergo/mergo.go
+++ b/vendor/github.com/imdario/mergo/mergo.go
@@ -32,7 +32,7 @@ type visit struct {
next *visit
}
-// From src/pkg/encoding/json.
+// From src/pkg/encoding/json/encode.go.
func isEmptyValue(v reflect.Value) bool {
switch v.Kind() {
case reflect.Array, reflect.Map, reflect.Slice, reflect.String:
@@ -46,7 +46,14 @@ func isEmptyValue(v reflect.Value) bool {
case reflect.Float32, reflect.Float64:
return v.Float() == 0
case reflect.Interface, reflect.Ptr:
+ if v.IsNil() {
+ return true
+ }
+ return isEmptyValue(v.Elem())
+ case reflect.Func:
return v.IsNil()
+ case reflect.Invalid:
+ return true
}
return false
}