internal/abi.Type.PtrBytes (field)

49 uses

	internal/abi (current package)
		type.go#L22: 	PtrBytes    uintptr // number of (prefix) bytes in the type that can contain pointers
		type.go#L196: func (t *Type) Pointers() bool { return t.PtrBytes != 0 }

	reflect
		type.go#L2164: 		PtrBytes: ptrdata,
		type.go#L2182: 	ptrs := typ.PtrBytes / goarch.PtrSize
		type.go#L2206: 	ptrs := typ.PtrBytes / goarch.PtrSize
		type.go#L2643: 	typ.PtrBytes = typeptrdata(&typ.Type)
		type.go#L2682: 			off += ft.Typ.PtrBytes
		type.go#L2770: 		return f.Offset + f.Typ.PtrBytes
		type.go#L2826: 		array.PtrBytes = typ.Size_*uintptr(length-1) + typ.PtrBytes
		type.go#L2837: 		array.PtrBytes = 0
		type.go#L2843: 		array.PtrBytes = typ.PtrBytes
		type.go#L2849: 		n := (array.PtrBytes/goarch.PtrSize + 7) / 8
		type.go#L2862: 		elemPtrs := typ.PtrBytes / goarch.PtrSize
		type.go#L2884: 		array.PtrBytes = array.Size_ // overestimate but ok; must match program
		type.go#L2994: 		PtrBytes: uintptr(abid.stackPtrs.n) * goarch.PtrSize,

	runtime
		arena.go#L516: 			c.scanAlloc += size - (typ.Size_ - typ.PtrBytes)
		arena.go#L518: 			c.scanAlloc += typ.PtrBytes
		arena.go#L564: 	nb := typ.PtrBytes / goarch.PtrSize
		arena.go#L585: 	h = h.pad(s, typ.Size_-typ.PtrBytes)
		arena.go#L595: 	s.largeType.PtrBytes = uintptr(ptr) - base + typ.PtrBytes
		arena.go#L1118: 	s.largeType.PtrBytes = 0
		cgocheck.go#L138: 	if typ.PtrBytes <= off {
		cgocheck.go#L141: 	if ptrdataSize := typ.PtrBytes - off; size > ptrdataSize {
		cgocheck.go#L241: 	if typ.PtrBytes <= off {
		cgocheck.go#L244: 	if ptrdataSize := typ.PtrBytes - off; size > ptrdataSize {
		heapdump.go#L208: 	dumpbool(t.Kind_&abi.KindDirectIface == 0 || t.PtrBytes != 0)
		mbarrier.go#L170: 		bulkBarrierPreWrite(uintptr(dst), uintptr(src), typ.PtrBytes, typ)
		mbarrier.go#L195: 	bulkBarrierPreWrite(uintptr(dst), 0, typ.PtrBytes, typ)
		mbarrier.go#L209: 	bulkBarrierPreWrite(uintptr(dst), uintptr(src), typ.PtrBytes, typ)
		mbarrier.go#L328: 		pwsize := size - typ.Size_ + typ.PtrBytes
		mbarrier.go#L373: 		bulkBarrierPreWrite(uintptr(ptr), 0, typ.PtrBytes, typ)
		mbitmap.go#L285: 		if tp.addr+goarch.PtrSize*ptrBits >= tp.elem+tp.typ.PtrBytes {
		mbitmap.go#L343: 	if tp.addr-tp.elem >= tp.typ.PtrBytes {
		mbitmap.go#L647: 	scanSize = typ.PtrBytes
		mbitmap.go#L681: 			print("runtime: dataSize=", dataSize, " typ.Size_=", typ.Size_, " typ.PtrBytes=", typ.PtrBytes, "\n")
		mbitmap.go#L725: 			spaceNeeded += alignUp(typ.PtrBytes/goarch.PtrSize/8, goarch.PtrSize)
		mbitmap.go#L738: 			gctyp.PtrBytes = typ.PtrBytes
		mbitmap.go#L795: 			if off < typ.PtrBytes {
		mbitmap.go#L822: 	print("runtime: typ=", unsafe.Pointer(typ), " typ.PtrBytes=", typ.PtrBytes, "\n")
		mbitmap.go#L852: 			if off < typ.PtrBytes {
		mbitmap.go#L900: 			if off < typ.PtrBytes {
		mbitmap.go#L1396: 	for i := uintptr(0); i < typ.PtrBytes; i += goarch.PtrSize {
		slice.go#L280: 			bulkBarrierPreWriteSrcOnly(uintptr(p), uintptr(oldPtr), lenmem-et.Size_+et.PtrBytes, et)
		stkframe.go#L286: 		_ptrdata:  int32(abiRegArgsType.PtrBytes),
		tracetype.go#L69: 	w.varint(uint64(typ.PtrBytes))