mirror of
https://github.com/jesseduffield/lazygit.git
synced 2026-09-13 09:06:27 -04:00
Bumps [github.com/sasha-s/go-deadlock](https://github.com/sasha-s/go-deadlock) from 0.3.6 to 0.3.9. - [Release notes](https://github.com/sasha-s/go-deadlock/releases) - [Commits](https://github.com/sasha-s/go-deadlock/compare/v0.3.6...v0.3.9) --- updated-dependencies: - dependency-name: github.com/sasha-s/go-deadlock dependency-version: 0.3.9 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
31 lines
651 B
Go
31 lines
651 B
Go
//go:build go1.24
|
|
|
|
package deadlock
|
|
|
|
import (
|
|
"unsafe"
|
|
"weak"
|
|
)
|
|
|
|
type beforeAfter struct {
|
|
before weak.Pointer[byte]
|
|
after weak.Pointer[byte]
|
|
}
|
|
|
|
// ptrFromInterface extracts the data pointer from an interface{} value.
|
|
// An interface (eface) is {type *_type, data unsafe.Pointer}; we grab the second word.
|
|
func ptrFromInterface(i interface{}) *byte {
|
|
type eface struct {
|
|
_ uintptr
|
|
data unsafe.Pointer
|
|
}
|
|
return (*byte)((*eface)(unsafe.Pointer(&i)).data)
|
|
}
|
|
|
|
func newBeforeAfter(before, after interface{}) beforeAfter {
|
|
return beforeAfter{
|
|
before: weak.Make(ptrFromInterface(before)),
|
|
after: weak.Make(ptrFromInterface(after)),
|
|
}
|
|
}
|