From d56bbb8991607b07579780ac1b9abbea0733c546 Mon Sep 17 00:00:00 2001 From: cui <523516579@qq.com> Date: Wed, 4 Sep 2024 23:10:47 +0800 Subject: [PATCH] refactor: using unsafe.String and unsafe.SliceData (#21412) --- CHANGELOG.md | 1 + internal/conv/string.go | 2 +- store/internal/conv/string.go | 2 +- store/v2/internal/conv/string.go | 2 +- x/authz/internal/conv/string.go | 2 +- x/nft/internal/conv/string.go | 2 +- 6 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b99f57289593..666e68600f43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,6 +48,7 @@ Every module contains its own CHANGELOG.md. Please refer to the module you are i ### Improvements * (client) [#21436](https://github.com/cosmos/cosmos-sdk/pull/21436) Use `address.Codec` from client.Context in `tx.Sign`. +* (internal) [#21412](https://github.com/cosmos/cosmos-sdk/pull/21412) Using unsafe.String and unsafe.SliceData. ### Bug Fixes diff --git a/internal/conv/string.go b/internal/conv/string.go index 96d89c3a5fff..fa9e507be06d 100644 --- a/internal/conv/string.go +++ b/internal/conv/string.go @@ -15,5 +15,5 @@ func UnsafeStrToBytes(s string) []byte { // to be used generally, but for a specific pattern to delete keys // from a map. func UnsafeBytesToStr(b []byte) string { - return *(*string)(unsafe.Pointer(&b)) + return unsafe.String(unsafe.SliceData(b), len(b)) } diff --git a/store/internal/conv/string.go b/store/internal/conv/string.go index 96d89c3a5fff..fa9e507be06d 100644 --- a/store/internal/conv/string.go +++ b/store/internal/conv/string.go @@ -15,5 +15,5 @@ func UnsafeStrToBytes(s string) []byte { // to be used generally, but for a specific pattern to delete keys // from a map. func UnsafeBytesToStr(b []byte) string { - return *(*string)(unsafe.Pointer(&b)) + return unsafe.String(unsafe.SliceData(b), len(b)) } diff --git a/store/v2/internal/conv/string.go b/store/v2/internal/conv/string.go index 96d89c3a5fff..fa9e507be06d 100644 --- a/store/v2/internal/conv/string.go +++ b/store/v2/internal/conv/string.go @@ -15,5 +15,5 @@ func UnsafeStrToBytes(s string) []byte { // to be used generally, but for a specific pattern to delete keys // from a map. func UnsafeBytesToStr(b []byte) string { - return *(*string)(unsafe.Pointer(&b)) + return unsafe.String(unsafe.SliceData(b), len(b)) } diff --git a/x/authz/internal/conv/string.go b/x/authz/internal/conv/string.go index 39078bd045b2..5b76131c888a 100644 --- a/x/authz/internal/conv/string.go +++ b/x/authz/internal/conv/string.go @@ -13,5 +13,5 @@ func UnsafeStrToBytes(s string) []byte { // to be used generally, but for a specific pattern to delete keys // from a map. func UnsafeBytesToStr(b []byte) string { - return *(*string)(unsafe.Pointer(&b)) + return unsafe.String(unsafe.SliceData(b), len(b)) } diff --git a/x/nft/internal/conv/string.go b/x/nft/internal/conv/string.go index 96d89c3a5fff..fa9e507be06d 100644 --- a/x/nft/internal/conv/string.go +++ b/x/nft/internal/conv/string.go @@ -15,5 +15,5 @@ func UnsafeStrToBytes(s string) []byte { // to be used generally, but for a specific pattern to delete keys // from a map. func UnsafeBytesToStr(b []byte) string { - return *(*string)(unsafe.Pointer(&b)) + return unsafe.String(unsafe.SliceData(b), len(b)) }