Skip to content

Commit f7b02bd

Browse files
author
Patrick Pichler
committed
Remove unused special handling cases for retrieving field values
For most types, it is good enough to use the raw interface values for null types. Hence the logic of getFieldValue has been adjusted to remove some special handling code.
1 parent dc9c0d2 commit f7b02bd

File tree

1 file changed

+3
-11
lines changed

1 file changed

+3
-11
lines changed

ext/native.go

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ func (tp *nativeTypeProvider) FindStructFieldType(typeName, fieldName string) (*
279279
GetFrom: func(obj any) (any, error) {
280280
refVal := reflect.Indirect(reflect.ValueOf(obj))
281281
refField := valueFieldByName(tp.options.parseStructTags, refVal, fieldName)
282-
return getFieldValue(tp, refField), nil
282+
return getFieldValue(refField), nil
283283
},
284284
}, true
285285
}
@@ -704,24 +704,16 @@ func (t *nativeType) hasField(fieldName string) (reflect.StructField, bool) {
704704
}
705705

706706
func adaptFieldValue(adapter types.Adapter, refField reflect.Value) ref.Val {
707-
return adapter.NativeToValue(getFieldValue(adapter, refField))
707+
return adapter.NativeToValue(getFieldValue(refField))
708708
}
709709

710-
func getFieldValue(adapter types.Adapter, refField reflect.Value) any {
710+
func getFieldValue(refField reflect.Value) any {
711711
if refField.IsZero() {
712712
switch refField.Kind() {
713-
case reflect.Array, reflect.Slice:
714-
if refField.Type().Elem() == reflect.TypeOf(byte(0)) {
715-
return refField.Interface()
716-
}
717-
return types.NewDynamicList(adapter, []ref.Val{})
718-
case reflect.Map:
719-
return types.NewDynamicMap(adapter, map[ref.Val]ref.Val{})
720713
case reflect.Struct:
721714
if refField.Type() == timestampType {
722715
return types.Timestamp{Time: time.Unix(0, 0)}
723716
}
724-
return reflect.New(refField.Type()).Elem().Interface()
725717
case reflect.Pointer:
726718
return reflect.New(refField.Type().Elem()).Interface()
727719
}

0 commit comments

Comments
 (0)