- Sort Score
- Result 10 results
- Languages All
Results 11 - 20 of 25 for efaceOf (0.14 sec)
-
src/runtime/netpoll.go
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Wed May 15 19:57:43 UTC 2024 - 20.7K bytes - Viewed (0) -
src/runtime/runtime2.go
type funcval struct { fn uintptr // variable-size, fn-specific data here } type iface struct { tab *itab data unsafe.Pointer } type eface struct { _type *_type data unsafe.Pointer } func efaceOf(ep *any) *eface { return (*eface)(unsafe.Pointer(ep)) } // The guintptr, muintptr, and puintptr are all used to bypass write barriers.
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Thu May 30 17:57:37 UTC 2024 - 47.9K bytes - Viewed (0) -
src/runtime/time.go
func (t *timer) hchan() *hchan { if !t.isChan { badTimer() } // Note: t.arg is a chan time.Time, // and runtime cannot refer to that type, // so we cannot use a type assertion. return (*hchan)(efaceOf(&t.arg).data) } // updateHeap updates t as directed by t.state, updating t.state // and returning a bool indicating whether the state (and ts.heap[0].when) changed.
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Fri Mar 29 14:36:24 UTC 2024 - 37.5K bytes - Viewed (0) -
src/runtime/panic.go
text := "panic while printing panic value" switch r := recover().(type) { case nil: // nothing to do case string: throw(text + ": " + r) default: throw(text + ": type " + toRType(efaceOf(&r)._type).string()) } }() for p != nil { switch v := p.arg.(type) { case error: p.arg = v.Error() case stringer: p.arg = v.String() } p = p.link } }
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Wed May 29 17:58:53 UTC 2024 - 43.8K bytes - Viewed (0) -
src/runtime/export_test.go
type UserArena struct { arena *userArena } func NewUserArena() *UserArena { return &UserArena{newUserArena()} } func (a *UserArena) New(out *any) { i := efaceOf(out) typ := i._type if typ.Kind_&abi.KindMask != abi.Pointer { panic("new result of non-ptr type") } typ = (*ptrtype)(unsafe.Pointer(typ)).Elem i.data = a.arena.new(typ) }
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Thu May 30 17:50:53 UTC 2024 - 46.1K bytes - Viewed (0) -
src/runtime/alg.go
x := *(*iface)(p) y := *(*iface)(q) return x.tab == y.tab && ifaceeq(x.tab, x.data, y.data) } func nilinterequal(p, q unsafe.Pointer) bool { x := *(*eface)(p) y := *(*eface)(q) return x._type == y._type && efaceeq(x._type, x.data, y.data) } func efaceeq(t *_type, x, y unsafe.Pointer) bool { if t == nil { return true } eq := t.Equal if eq == nil {
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Wed May 29 17:58:53 UTC 2024 - 13.6K bytes - Viewed (0) -
src/runtime/runtime-gdb.py
# "0x429d6c <runtime.gopark+284>", so # chop at first space. pc = int(str(pc).split(None, 1)[0], 16) return pc # # For reference, this is what we're trying to do: # eface: p *(*(struct 'runtime.rtype'*)'main.e'->type_->data)->string # iface: p *(*(struct 'runtime.rtype'*)'main.s'->tab->Type->data)->string # # interface types can't be recognized by their name, instead we check
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Wed May 10 12:59:20 UTC 2023 - 15.4K bytes - Viewed (0) -
src/internal/reflectlite/value.go
// It returns the zero Value if v is nil. func (v Value) Elem() Value { k := v.kind() switch k { case abi.Interface: var eface any if v.typ().NumMethod() == 0 { eface = *(*any)(v.ptr) } else { eface = (any)(*(*interface { M() })(v.ptr)) } x := unpackEface(eface) if x.flag != 0 { x.flag |= v.flag.ro() } return x case abi.Pointer: ptr := v.ptr
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue May 07 17:01:54 UTC 2024 - 13.6K bytes - Viewed (0) -
src/cmd/compile/internal/typecheck/_builtin/runtime.go
func interfaceSwitch(s *byte, t *byte) (int, *byte) // interface equality. Type/itab pointers are already known to be equal, so // we only need to pass one. func ifaceeq(tab *uintptr, x, y unsafe.Pointer) (ret bool) func efaceeq(typ *uintptr, x, y unsafe.Pointer) (ret bool) // panic for various rangefunc iterator errors func panicrangestate(state int) // defer in range over func func deferrangefunc() interface{}
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue May 21 21:08:03 UTC 2024 - 10.6K bytes - Viewed (0) -
src/internal/abi/type.go
func TypeOf(a any) *Type { eface := *(*EmptyInterface)(unsafe.Pointer(&a)) // Types are either static (for compiler-created types) or // heap-allocated but always reachable (for reflection-created // types, held in the central map). So there is no need to // escape types. noescape here help avoid unnecessary escape // of v. return (*Type)(NoEscape(unsafe.Pointer(eface.Type))) }
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Wed Apr 17 21:09:59 UTC 2024 - 21.8K bytes - Viewed (0)