mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-11 22:43:40 +00:00
reflect: implement New function
This is very important for some use cases, for example for Vecty.
This commit is contained in:
committed by
Ron Evans
parent
57271d7eaa
commit
e587b1d1b4
+10
-1
@@ -724,8 +724,14 @@ func Zero(typ Type) Value {
|
||||
panic("unimplemented: reflect.Zero()")
|
||||
}
|
||||
|
||||
// New is the reflect equivalent of the new(T) keyword, returning a pointer to a
|
||||
// new value of the given type.
|
||||
func New(typ Type) Value {
|
||||
panic("unimplemented: reflect.New()")
|
||||
return Value{
|
||||
typecode: PtrTo(typ).(rawType),
|
||||
value: alloc(typ.Size()),
|
||||
flags: valueFlagExported,
|
||||
}
|
||||
}
|
||||
|
||||
type funcHeader struct {
|
||||
@@ -756,6 +762,9 @@ func (e *ValueError) Error() string {
|
||||
// llvm.memcpy.p0i8.p0i8.i32().
|
||||
func memcpy(dst, src unsafe.Pointer, size uintptr)
|
||||
|
||||
//go:linkname alloc runtime.alloc
|
||||
func alloc(size uintptr) unsafe.Pointer
|
||||
|
||||
// Copy copies the contents of src into dst until either
|
||||
// dst has been filled or src has been exhausted.
|
||||
func Copy(dst, src Value) int {
|
||||
|
||||
Reference in New Issue
Block a user