Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 24 for ITab (0.03 sec)

  1. src/runtime/iface.go

    	}
    	t.add(m)
    }
    
    // add adds the given itab to itab table t.
    // itabLock must be held.
    func (t *itabTableType) add(m *itab) {
    	// See comment in find about the probe sequence.
    	// Insert new itab in the first empty spot in the probe sequence.
    	mask := t.size - 1
    	h := itabHashFunc(m.Inter, m.Type) & mask
    	for i := uintptr(1); ; i++ {
    		p := (**itab)(add(unsafe.Pointer(&t.entries), h*goarch.PtrSize))
    		m2 := *p
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 17:58:53 UTC 2024
    - 22.5K bytes
    - Viewed (0)
  2. src/internal/abi/iface.go

    package abi
    
    import "unsafe"
    
    // The first word of every non-empty interface type contains an *ITab.
    // It records the underlying concrete type (Type), the interface type it
    // is implementing (Inter), and some ancillary information.
    //
    // allocated in non-garbage-collected memory
    type ITab struct {
    	Inter *InterfaceType
    	Type  *Type
    	Hash  uint32     // copy of Type.Hash. Used for type switches.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Apr 17 21:09:59 UTC 2024
    - 895 bytes
    - Viewed (0)
  3. src/cmd/cgo/internal/testshared/testdata/depBase/dep.go

    var V int = 1
    
    var HasMask []string = []string{"hi"}
    
    type HasProg struct {
    	array [1024]*byte
    }
    
    type Dep struct {
    	X int
    }
    
    func (d *Dep) Method() int {
    	// This code below causes various go.itab.* symbols to be generated in
    	// the shared library. Similar code in ../exe/exe.go results in
    	// exercising https://golang.org/issues/17594
    	reflect.TypeOf(os.Stdout).Elem()
    	return 10
    }
    
    func F() int {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 14:52:41 UTC 2024
    - 1K bytes
    - Viewed (0)
  4. src/cmd/link/internal/ld/deadcode.go

    				rs := r.Sym()
    				if d.ldr.IsItab(rs) {
    					// This relocation can also point at an itab, in which case it
    					// means "the Type field of that itab".
    					rs = decodeItabType(d.ldr, d.ctxt.Arch, rs)
    				}
    				if !d.ldr.IsGoType(rs) && !d.ctxt.linkShared {
    					panic(fmt.Sprintf("R_USEIFACE in %s references %s which is not a type or itab", d.ldr.SymName(symIdx), d.ldr.SymName(rs)))
    				}
    				if !d.ldr.AttrUsedInIface(rs) {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 14:52:41 UTC 2024
    - 19K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssagen/ssa.go

    			s.startBlock(bOk)
    			// nonempty -> empty
    			// Need to load type from itab
    			off := s.newValue1I(ssa.OpOffPtr, byteptr, rttype.ITab.OffsetOf("Type"), itab)
    			s.vars[typVar] = s.load(byteptr, off)
    			s.endBlock()
    
    			// itab is nil, might as well use that as the nil result.
    			s.startBlock(bFail)
    			s.vars[typVar] = itab
    			s.endBlock()
    
    			// Merge point.
    			bEnd := s.f.NewBlock(ssa.BlockPlain)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jun 10 19:44:43 UTC 2024
    - 284.9K bytes
    - Viewed (0)
  6. src/runtime/mfinal.go

    	case fint.Kind_&abi.KindMask == abi.Interface:
    		ityp := (*interfacetype)(unsafe.Pointer(fint))
    		if len(ityp.Methods) == 0 {
    			// ok - satisfies empty interface
    			goto okarg
    		}
    		if itab := assertE2I2(ityp, efaceOf(&obj)._type); itab != nil {
    			goto okarg
    		}
    	}
    	throw("runtime.SetFinalizer: cannot pass " + toRType(etyp).string() + " to finalizer " + toRType(ftyp).string())
    okarg:
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 01:56:56 UTC 2024
    - 19K bytes
    - Viewed (0)
  7. src/runtime/lockrank.go

    	lockRankSudog:           "sudog",
    	lockRankTimers:          "timers",
    	lockRankTimer:           "timer",
    	lockRankNetpollInit:     "netpollInit",
    	lockRankRoot:            "root",
    	lockRankItab:            "itab",
    	lockRankReflectOffs:     "reflectOffs",
    	lockRankUserArenaState:  "userArenaState",
    	lockRankTraceBuf:        "traceBuf",
    	lockRankTraceStrings:    "traceStrings",
    	lockRankFin:             "fin",
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 08 17:47:01 UTC 2024
    - 19.9K bytes
    - Viewed (0)
  8. src/runtime/mklockrank.go

    # Channels
    NONE < notifyList;
    hchan, notifyList < sudog;
    
    hchan, pollDesc, wakeableSleep < timers;
    timers, timerSend < timer < netpollInit;
    
    # Semaphores
    NONE < root;
    
    # Itabs
    NONE
    < itab
    < reflectOffs;
    
    # User arena state
    NONE < userArenaState;
    
    # Tracing without a P uses a global trace buffer.
    scavenge
    # Above TRACEGLOBAL can emit a trace event without a P.
    < TRACEGLOBAL
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 08 17:47:01 UTC 2024
    - 9.1K bytes
    - Viewed (0)
  9. src/cmd/compile/internal/typecheck/_builtin/runtime.go

    func panicnildottype(want *byte)
    func typeAssert(s *byte, typ *byte) *byte
    
    // interface switches
    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)
    
    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/cmd/cgo/internal/testplugin/plugin_test.go

    	goCmd(t, "build", "-buildmode=plugin", "./iface_b")
    	goCmd(t, "build", "-o", "iface.exe", "./iface")
    	run(t, "./iface.exe")
    }
    
    func TestIssue18676(t *testing.T) {
    	// make sure we don't add the same itab twice.
    	// The buggy code hangs forever, so use a timeout to check for that.
    	globalSkip(t)
    	goCmd(t, "build", "-buildmode=plugin", "-o", "plugin.so", "./issue18676/plugin.go")
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon May 20 15:32:53 UTC 2024
    - 12.3K bytes
    - Viewed (0)
Back to top