Merge 8f70a63a55213fbf907723125b7d9cb69a9222bd into 674522db91d637d179c16c372d87756ea26fa089

This commit is contained in:
Name 2025-05-21 22:02:41 +08:00 committed by GitHub
commit 247c623989
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

18
tree.go
View File

@ -5,7 +5,6 @@
package gin package gin
import ( import (
"bytes"
"net/url" "net/url"
"strings" "strings"
"unicode" "unicode"
@ -14,12 +13,6 @@ import (
"github.com/gin-gonic/gin/internal/bytesconv" "github.com/gin-gonic/gin/internal/bytesconv"
) )
var (
strColon = []byte(":")
strStar = []byte("*")
strSlash = []byte("/")
)
// Param is a single URL parameter, consisting of a key and a value. // Param is a single URL parameter, consisting of a key and a value.
type Param struct { type Param struct {
Key string Key string
@ -85,16 +78,13 @@ func (n *node) addChild(child *node) {
} }
func countParams(path string) uint16 { func countParams(path string) uint16 {
var n uint16 colons := strings.Count(path, ":")
s := bytesconv.StringToBytes(path) stars := strings.Count(path, "*")
n += uint16(bytes.Count(s, strColon)) return uint16(colons + stars)
n += uint16(bytes.Count(s, strStar))
return n
} }
func countSections(path string) uint16 { func countSections(path string) uint16 {
s := bytesconv.StringToBytes(path) return uint16(strings.Count(path, "/"))
return uint16(bytes.Count(s, strSlash))
} }
type nodeType uint8 type nodeType uint8