Skip to content

Commit ee4d706

Browse files
committed
Refactor to use reflect.TypeFor
1 parent b60a9bd commit ee4d706

File tree

7 files changed

+26
-26
lines changed

7 files changed

+26
-26
lines changed

pkg/ring0/kernel_amd64.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ func HaltAndWriteFSBase(regs *arch.Registers)
3232

3333
// init initializes architecture-specific state.
3434
func (k *Kernel) init(maxCPUs int) {
35-
entrySize := reflect.TypeOf(kernelEntry{}).Size()
35+
entrySize := reflect.TypeFor[kernelEntry]().Size()
3636
var (
3737
entries []kernelEntry
3838
padding = 1
@@ -51,7 +51,7 @@ func (k *Kernel) init(maxCPUs int) {
5151
k.cpuEntries = entries
5252

5353
k.globalIDT = &idt64{}
54-
if reflect.TypeOf(idt64{}).Size() != hostarch.PageSize {
54+
if reflect.TypeFor[idt64]().Size() != hostarch.PageSize {
5555
panic("Size of globalIDT should be PageSize")
5656
}
5757
if reflect.ValueOf(k.globalIDT).Pointer()&(hostarch.PageSize-1) != 0 {
@@ -77,12 +77,12 @@ func (k *Kernel) EntryRegions() map[uintptr]uintptr {
7777
regions := make(map[uintptr]uintptr)
7878

7979
addr := reflect.ValueOf(&k.cpuEntries[0]).Pointer()
80-
size := reflect.TypeOf(kernelEntry{}).Size() * uintptr(len(k.cpuEntries))
80+
size := reflect.TypeFor[kernelEntry]().Size() * uintptr(len(k.cpuEntries))
8181
end, _ := hostarch.Addr(addr + size).RoundUp()
8282
regions[uintptr(hostarch.Addr(addr).RoundDown())] = uintptr(end)
8383

8484
addr = reflect.ValueOf(k.globalIDT).Pointer()
85-
size = reflect.TypeOf(idt64{}).Size()
85+
size = reflect.TypeFor[idt64]().Size()
8686
end, _ = hostarch.Addr(addr + size).RoundUp()
8787
regions[uintptr(hostarch.Addr(addr).RoundDown())] = uintptr(end)
8888

pkg/sentry/kernel/seccomp.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ func (t *Task) evaluateSyscallFilters(sysno int32, args arch.SyscallArguments, i
199199
func checkFilterCacheability(program bpf.Program, input bpf.Input) (uint32, error) {
200200
// Look up Nr and Arch fields, we'll use their offsets later
201201
// to verify whether they were accessed.
202-
sdType := reflect.TypeOf(linux.SeccompData{})
202+
sdType := reflect.TypeFor[linux.SeccompData]()
203203
nrField, ok := sdType.FieldByName("Nr")
204204
if !ok {
205205
panic("linux.SeccompData.Nr field not found")

pkg/state/types.go

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -295,23 +295,23 @@ const interfaceType = "interface"
295295
var primitiveTypeDatabase = func() map[string]reflect.Type {
296296
r := make(map[string]reflect.Type)
297297
for _, t := range []reflect.Type{
298-
reflect.TypeOf(false),
299-
reflect.TypeOf(int(0)),
300-
reflect.TypeOf(int8(0)),
301-
reflect.TypeOf(int16(0)),
302-
reflect.TypeOf(int32(0)),
303-
reflect.TypeOf(int64(0)),
304-
reflect.TypeOf(uint(0)),
305-
reflect.TypeOf(uintptr(0)),
306-
reflect.TypeOf(uint8(0)),
307-
reflect.TypeOf(uint16(0)),
308-
reflect.TypeOf(uint32(0)),
309-
reflect.TypeOf(uint64(0)),
310-
reflect.TypeOf(""),
311-
reflect.TypeOf(float32(0.0)),
312-
reflect.TypeOf(float64(0.0)),
313-
reflect.TypeOf(complex64(0.0)),
314-
reflect.TypeOf(complex128(0.0)),
298+
reflect.TypeFor[bool](),
299+
reflect.TypeFor[int](),
300+
reflect.TypeFor[int8](),
301+
reflect.TypeFor[int16](),
302+
reflect.TypeFor[int32](),
303+
reflect.TypeFor[int64](),
304+
reflect.TypeFor[uint](),
305+
reflect.TypeFor[uintptr](),
306+
reflect.TypeFor[uint8](),
307+
reflect.TypeFor[uint16](),
308+
reflect.TypeFor[uint32](),
309+
reflect.TypeFor[uint64](),
310+
reflect.TypeFor[string](),
311+
reflect.TypeFor[float32](),
312+
reflect.TypeFor[float64](),
313+
reflect.TypeFor[complex64](),
314+
reflect.TypeFor[complex128](),
315315
} {
316316
r[t.Name()] = t
317317
}

pkg/sync/locking/generic_mutex.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,5 +74,5 @@ func initLockNames() {}
7474

7575
func init() {
7676
initLockNames()
77-
genericMarkIndex = locking.NewMutexClass(reflect.TypeOf(Mutex{}), lockNames)
77+
genericMarkIndex = locking.NewMutexClass(reflect.TypeFor[Mutex](), lockNames)
7878
}

pkg/sync/locking/generic_rwmutex.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,5 +106,5 @@ func initLockNames() {}
106106

107107
func init() {
108108
initLockNames()
109-
genericMarkIndex = locking.NewMutexClass(reflect.TypeOf(RWMutex{}), lockNames)
109+
genericMarkIndex = locking.NewMutexClass(reflect.TypeFor[RWMutex](), lockNames)
110110
}

pkg/urpc/urpc.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ func (s *Server) Register(obj any) {
266266
// Need single return.
267267
panic(fmt.Sprintf("method %s has wrong number of returns.", prettyName))
268268
}
269-
if returnType := mtype.Out(0); returnType != reflect.TypeOf((*error)(nil)).Elem() {
269+
if returnType := mtype.Out(0); returnType != reflect.TypeFor[error]() {
270270
// Need error return.
271271
panic(fmt.Sprintf("method %s has non-error return value.", prettyName))
272272
}

test/packetimpact/testbench/layers.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ func stringLayer(l Layer) string {
159159
v = reflect.Indirect(v)
160160
switch {
161161
// Try to use Stringers appropriately.
162-
case v.Type().Implements(reflect.TypeOf((*fmt.Stringer)(nil)).Elem()):
162+
case v.Type().Implements(reflect.TypeFor[fmt.Stringer]()):
163163
ret = append(ret, fmt.Sprintf("%s:%v", t.Name, v))
164164
// Print byte slices as hex.
165165
case v.Kind() == reflect.Slice && v.Type().Elem().Kind() == reflect.Uint8:

0 commit comments

Comments
 (0)