internal/lib/reflect: Value.New
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user