mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 05:27:21 +00:00
Use new-style conversions in default conversions
This commit is contained in:
parent
f6337c7624
commit
12ee83ed94
@ -546,6 +546,22 @@ func (c *Converter) callCustom(sv, dv, custom reflect.Value, scope *scope) error
|
|||||||
return ret.(error)
|
return ret.(error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// callUntyped calls predefined conversion func.
|
||||||
|
func (c *Converter) callUntyped(sv, dv reflect.Value, f ConversionFunc, scope *scope) error {
|
||||||
|
if !dv.CanAddr() {
|
||||||
|
return scope.errorf("cant addr dest")
|
||||||
|
}
|
||||||
|
var svPointer reflect.Value
|
||||||
|
if sv.CanAddr() {
|
||||||
|
svPointer = sv.Addr()
|
||||||
|
} else {
|
||||||
|
svPointer = reflect.New(sv.Type())
|
||||||
|
svPointer.Elem().Set(sv)
|
||||||
|
}
|
||||||
|
dvPointer := dv.Addr()
|
||||||
|
return f(svPointer.Interface(), dvPointer.Interface(), scope)
|
||||||
|
}
|
||||||
|
|
||||||
// convert recursively copies sv into dv, calling an appropriate conversion function if
|
// convert recursively copies sv into dv, calling an appropriate conversion function if
|
||||||
// one is registered.
|
// one is registered.
|
||||||
func (c *Converter) convert(sv, dv reflect.Value, scope *scope) error {
|
func (c *Converter) convert(sv, dv reflect.Value, scope *scope) error {
|
||||||
@ -574,6 +590,14 @@ func (c *Converter) convert(sv, dv reflect.Value, scope *scope) error {
|
|||||||
return c.callCustom(sv, dv, fv, scope)
|
return c.callCustom(sv, dv, fv, scope)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pair = typePair{reflect.PtrTo(sv.Type()), reflect.PtrTo(dv.Type())}
|
||||||
|
if f, ok := c.conversionFuncs.untyped[pair]; ok {
|
||||||
|
return c.callUntyped(sv, dv, f, scope)
|
||||||
|
}
|
||||||
|
if f, ok := c.generatedConversionFuncs.untyped[pair]; ok {
|
||||||
|
return c.callUntyped(sv, dv, f, scope)
|
||||||
|
}
|
||||||
|
|
||||||
return c.defaultConvert(sv, dv, scope)
|
return c.defaultConvert(sv, dv, scope)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user