From 4ee7c82bf1d602217d93d51bc066a022ebdf2b14 Mon Sep 17 00:00:00 2001 From: John Date: Thu, 28 Nov 2019 08:46:38 +0800 Subject: [PATCH] fix issue in empty slice converting panic for gconv.Struct --- util/gconv/gconv_struct.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/util/gconv/gconv_struct.go b/util/gconv/gconv_struct.go index 2816e17d1..7a2377d07 100644 --- a/util/gconv/gconv_struct.go +++ b/util/gconv/gconv_struct.go @@ -247,8 +247,8 @@ func bindVarToReflectValue(structFieldValue reflect.Value, value interface{}) er a := reflect.Value{} v := reflect.ValueOf(value) if v.Kind() == reflect.Slice || v.Kind() == reflect.Array { + a = reflect.MakeSlice(structFieldValue.Type(), v.Len(), v.Len()) if v.Len() > 0 { - a = reflect.MakeSlice(structFieldValue.Type(), v.Len(), v.Len()) t := a.Index(0).Type() for i := 0; i < v.Len(); i++ { if t.Kind() == reflect.Ptr { @@ -265,8 +265,6 @@ func bindVarToReflectValue(structFieldValue reflect.Value, value interface{}) er a.Index(i).Set(e) } } - } else { - a = reflect.MakeSlice(structFieldValue.Type(), v.Len(), v.Len()) } } else { a = reflect.MakeSlice(structFieldValue.Type(), 1, 1)