package reflect
+import "unsafe"
+
// During deepValueEqual, must keep track of checks that are
// in progress. The comparison algorithm assumes that all
// checks in progress are true when it reencounters them.
// Visited comparisons are stored in a map indexed by visit.
type visit struct {
- a1 uintptr
- a2 uintptr
+ a1 unsafe.Pointer
+ a2 unsafe.Pointer
typ Type
}
}
if v1.CanAddr() && v2.CanAddr() && hard(v1.Kind()) {
- addr1 := v1.UnsafeAddr()
- addr2 := v2.UnsafeAddr()
- if addr1 > addr2 {
+ addr1 := unsafe.Pointer(v1.UnsafeAddr())
+ addr2 := unsafe.Pointer(v2.UnsafeAddr())
+ if uintptr(addr1) > uintptr(addr2) {
// Canonicalize order to reduce number of entries in visited.
addr1, addr2 = addr2, addr1
}