Source File
pointer_unsafe.go
Belonging Package
google.golang.org/protobuf/internal/impl
package impl
import (
)
const UnsafeEnabled = true
func ( offset) () bool { return != invalidOffset }
var invalidOffset = ^offset(0)
var zeroOffset = offset(0)
return .AsValueOf().Interface()
}
func ( pointer) () *bool { return (*bool)(.p) }
func ( pointer) () **bool { return (**bool)(.p) }
func ( pointer) () *[]bool { return (*[]bool)(.p) }
func ( pointer) () *int32 { return (*int32)(.p) }
func ( pointer) () **int32 { return (**int32)(.p) }
func ( pointer) () *[]int32 { return (*[]int32)(.p) }
func ( pointer) () *int64 { return (*int64)(.p) }
func ( pointer) () **int64 { return (**int64)(.p) }
func ( pointer) () *[]int64 { return (*[]int64)(.p) }
func ( pointer) () *uint32 { return (*uint32)(.p) }
func ( pointer) () **uint32 { return (**uint32)(.p) }
func ( pointer) () *[]uint32 { return (*[]uint32)(.p) }
func ( pointer) () *uint64 { return (*uint64)(.p) }
func ( pointer) () **uint64 { return (**uint64)(.p) }
func ( pointer) () *[]uint64 { return (*[]uint64)(.p) }
func ( pointer) () *float32 { return (*float32)(.p) }
func ( pointer) () **float32 { return (**float32)(.p) }
func ( pointer) () *[]float32 { return (*[]float32)(.p) }
func ( pointer) () *float64 { return (*float64)(.p) }
func ( pointer) () **float64 { return (**float64)(.p) }
func ( pointer) () *[]float64 { return (*[]float64)(.p) }
func ( pointer) () *string { return (*string)(.p) }
func ( pointer) () **string { return (**string)(.p) }
func ( pointer) () *[]string { return (*[]string)(.p) }
func ( pointer) () *[]byte { return (*[]byte)(.p) }
func ( pointer) () *[][]byte { return (*[][]byte)(.p) }
func ( pointer) () *weakFields { return (*weakFields)(.p) }
func ( pointer) () *map[int32]ExtensionField { return (*map[int32]ExtensionField)(.p) }
func ( pointer) () pointer {
return pointer{p: *(*unsafe.Pointer)(.p)}
}
return (*messageState)(unsafe.Pointer())
}
return pointer{p: unsafe.Pointer()}
}
func ( *messageState) () *MessageInfo {
:= .LoadMessageInfo()
if == nil {
panic("invalid nil message info; this suggests memory corruption due to a race or shallow copy on the message struct")
}
return
}
func ( *messageState) () *MessageInfo {
return (*MessageInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&.atomicMessageInfo))))
}
func ( *messageState) ( *MessageInfo) {
atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&.atomicMessageInfo)), unsafe.Pointer())
}
type atomicNilMessage struct{ p unsafe.Pointer } // p is a *messageReflectWrapper
func ( *atomicNilMessage) ( *MessageInfo) *messageReflectWrapper {
if := atomic.LoadPointer(&.p); != nil {
return (*messageReflectWrapper)()
}
:= &messageReflectWrapper{mi: }
atomic.CompareAndSwapPointer(&.p, nil, (unsafe.Pointer)())
return (*messageReflectWrapper)(atomic.LoadPointer(&.p))
![]() |
The pages are generated with Golds v0.3.2-preview. (GOOS=darwin GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |