aboutsummaryrefslogtreecommitdiffstats
path: root/modules/util
diff options
context:
space:
mode:
authorOleksandr Redko <oleksandr.red+github@gmail.com>2024-06-14 04:26:33 +0300
committerGitHub <noreply@github.com>2024-06-14 01:26:33 +0000
commit1761459ebc7eb6d432eced093b4583425a5c5d4b (patch)
treee4f6f2d7e9cd7c6d38665bd0991179b67157f4d6 /modules/util
parent5b56d13e0d0ebb2b70c54567104faf4a208d0ab1 (diff)
downloadgitea-1761459ebc7eb6d432eced093b4583425a5c5d4b.tar.gz
gitea-1761459ebc7eb6d432eced093b4583425a5c5d4b.zip
Refactor to use UnsafeStringToBytes (#31358)
The PR replaces all `goldmark/util.BytesToReadOnlyString` with `util.UnsafeBytesToString`, `goldmark/util.StringToReadOnlyBytes` with `util.UnsafeStringToBytes`. This removes one `TODO`. Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Diffstat (limited to 'modules/util')
-rw-r--r--modules/util/sanitize.go6
-rw-r--r--modules/util/string.go2
2 files changed, 3 insertions, 5 deletions
diff --git a/modules/util/sanitize.go b/modules/util/sanitize.go
index f1ea2574f1..0dd8b342a2 100644
--- a/modules/util/sanitize.go
+++ b/modules/util/sanitize.go
@@ -6,8 +6,6 @@ package util
import (
"bytes"
"unicode"
-
- "github.com/yuin/goldmark/util"
)
type sanitizedError struct {
@@ -33,7 +31,7 @@ var schemeSep = []byte("://")
// SanitizeCredentialURLs remove all credentials in URLs (starting with "scheme://") for the input string: "https://user:pass@domain.com" => "https://sanitized-credential@domain.com"
func SanitizeCredentialURLs(s string) string {
- bs := util.StringToReadOnlyBytes(s)
+ bs := UnsafeStringToBytes(s)
schemeSepPos := bytes.Index(bs, schemeSep)
if schemeSepPos == -1 || bytes.IndexByte(bs[schemeSepPos:], '@') == -1 {
return s // fast return if there is no URL scheme or no userinfo
@@ -70,5 +68,5 @@ func SanitizeCredentialURLs(s string) string {
schemeSepPos = bytes.Index(bs, schemeSep)
}
out = append(out, bs...)
- return util.BytesToReadOnlyString(out)
+ return UnsafeBytesToString(out)
}
diff --git a/modules/util/string.go b/modules/util/string.go
index 2cf44d29b1..cf50f591c6 100644
--- a/modules/util/string.go
+++ b/modules/util/string.go
@@ -87,11 +87,11 @@ func ToSnakeCase(input string) string {
}
// UnsafeBytesToString uses Go's unsafe package to convert a byte slice to a string.
-// TODO: replace all "goldmark/util.BytesToReadOnlyString" with this official approach
func UnsafeBytesToString(b []byte) string {
return unsafe.String(unsafe.SliceData(b), len(b))
}
+// UnsafeStringToBytes uses Go's unsafe package to convert a string to a byte slice.
func UnsafeStringToBytes(s string) []byte {
return unsafe.Slice(unsafe.StringData(s), len(s))
}