internal/lib/reflect: Value.New

This commit is contained in:
visualfc
2024-11-14 10:20:04 +08:00
parent 93d24e7106
commit 15a6c779b8

View File

@@ -1799,21 +1799,18 @@ const maxZero = runtime.MaxZero
// New returns a Value representing a pointer to a new zero value // New returns a Value representing a pointer to a new zero value
// for the specified type. That is, the returned Value's Type is PointerTo(typ). // for the specified type. That is, the returned Value's Type is PointerTo(typ).
func New(typ Type) Value { func New(typ Type) Value {
/* if typ == nil {
if typ == nil { panic("reflect: New(nil)")
panic("reflect: New(nil)") }
} t := &typ.(*rtype).t
t := &typ.(*rtype).t pt := ptrTo(t)
pt := ptrTo(t) if ifaceIndir(pt) {
if ifaceIndir(pt) { // This is a pointer to a not-in-heap type.
// This is a pointer to a not-in-heap type. panic("reflect: New of type that may not be allocated in heap (possibly undefined cgo C type)")
panic("reflect: New of type that may not be allocated in heap (possibly undefined cgo C type)") }
} ptr := unsafe_New(t)
ptr := unsafe_New(t) fl := flag(Pointer)
fl := flag(Pointer) return Value{pt, ptr, fl}
return Value{pt, ptr, fl}
*/
panic("todo: reflect.New")
} }
// NewAt returns a Value representing a pointer to a value of the // NewAt returns a Value representing a pointer to a value of the