Commit Graph
7 Commits
Author SHA1 Message Date
cui d56bbb8991 refactor: using unsafe.String and unsafe.SliceData (#21412) 2024-09-04 15:10:47 +00:00
8f0d5b15f0 chore: typos fixes by cosmos-sdk bot (#18689)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
Co-authored-by: Julien Robert <julien@rbrt.fr>
Co-authored-by: marbar3778 <marbar3778@yahoo.com>
2023-12-11 13:03:19 +00:00
Julien Robert 5839c3a600 chore: bump golangci-lint to v1.54.2 (#17538) 2023-08-25 14:07:24 +00:00
Jacob Gadikian a9546bfad0 style: apply any / all automated lint fixes (#15644) 2023-03-31 13:48:41 +02:00
Jacob Gadikian be8c5a09c2 chore: lint tests (#14268) 2022-12-18 23:48:31 +00:00
Cuong Manh Le d3769b2fbc internal/conv: fix wrong string to bytes implementation (#9141)
UnsafeStrToBytes is currently not safe for -d=checkptr=2, since when it
cast from smaller struct (string) to bigger struct ([]byte). That causes
checkptr complains as the casting straddle multiple heap objects.

To fix this, we have to get the string header first, then use its fields
to construct the slice.

New implementation performs the same speed with the old (wrong) one.

name                old time/op    new time/op    delta
UnsafeStrToBytes-8    25.7ns ± 1%    25.7ns ± 3%   ~     (p=0.931 n=10+17)

name                old alloc/op   new alloc/op   delta
UnsafeStrToBytes-8     7.00B ± 0%     7.00B ± 0%   ~     (all equal)

name                old allocs/op  new allocs/op  delta
UnsafeStrToBytes-8      0.00           0.00        ~     (all equal)

While at it, also simplify UnsafeBytesToStr implementation, since when
we can pass the slice directly to unsafe.Pointer, instead of getting the
slice header first.
2021-04-19 14:51:05 +01:00
Robert ZarembaandAlessio Treglia 5f2b90c3c7 internal: create package for unsafe bytes convertion (#8733)
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
2021-03-01 15:10:22 +00:00