From 4900f219fdde4d7e9595d8f288768ba0b6d10993 Mon Sep 17 00:00:00 2001 From: Gustavo Brunoro Date: Thu, 2 Aug 2018 23:57:39 -0300 Subject: [PATCH] getValueFromFields doesn't panic on nil pointers * `IsValid()` won't return `false` for nil pointers unless Value is wrapped in a `reflect.Indirect`. --- utils.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils.go b/utils.go index 99b532c5..ddf63671 100644 --- a/utils.go +++ b/utils.go @@ -267,7 +267,7 @@ func getValueFromFields(value reflect.Value, fieldNames []string) (results []int // as FieldByName could panic if indirectValue := reflect.Indirect(value); indirectValue.IsValid() { for _, fieldName := range fieldNames { - if fieldValue := indirectValue.FieldByName(fieldName); fieldValue.IsValid() { + if fieldValue := reflect.Indirect(indirectValue.FieldByName(fieldName)); fieldValue.IsValid() { result := fieldValue.Interface() if r, ok := result.(driver.Valuer); ok { result, _ = r.Value()