summaryrefslogtreecommitdiff
path: root/vendor/github.com/uptrace/bun/internal/unsafe.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/uptrace/bun/internal/unsafe.go')
-rw-r--r--vendor/github.com/uptrace/bun/internal/unsafe.go16
1 files changed, 9 insertions, 7 deletions
diff --git a/vendor/github.com/uptrace/bun/internal/unsafe.go b/vendor/github.com/uptrace/bun/internal/unsafe.go
index 4bc79701f..1a0331297 100644
--- a/vendor/github.com/uptrace/bun/internal/unsafe.go
+++ b/vendor/github.com/uptrace/bun/internal/unsafe.go
@@ -1,3 +1,4 @@
+//go:build !appengine
// +build !appengine
package internal
@@ -6,15 +7,16 @@ import "unsafe"
// String converts byte slice to string.
func String(b []byte) string {
- return *(*string)(unsafe.Pointer(&b))
+ if len(b) == 0 {
+ return ""
+ }
+ return unsafe.String(&b[0], len(b))
}
// Bytes converts string to byte slice.
func Bytes(s string) []byte {
- return *(*[]byte)(unsafe.Pointer(
- &struct {
- string
- Cap int
- }{s, len(s)},
- ))
+ if s == "" {
+ return []byte{}
+ }
+ return unsafe.Slice(unsafe.StringData(s), len(s))
}