Search Options

Results per page
Sort
Preferred Languages
Advance

Results 11 - 20 of 25 for efaceOf (0.14 sec)

  1. src/runtime/netpoll.go

    // must be stored in interfaces indirectly. See issue 42076.
    func (pd *pollDesc) makeArg() (i any) {
    	x := (*eface)(unsafe.Pointer(&i))
    	x._type = pdType
    	x.data = unsafe.Pointer(&pd.self)
    	return
    }
    
    var (
    	pdEface any    = (*pollDesc)(nil)
    	pdType  *_type = efaceOf(&pdEface)._type
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 15 19:57:43 UTC 2024
    - 20.7K bytes
    - Viewed (0)
  2. 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)
  3. 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)
  4. 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)
  5. 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)
  6. 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)
  7. 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)
  8. 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)
  9. 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)
  10. 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)
Back to top