Commit dbc4ac69 authored by astaxie's avatar astaxie

reduce the slicegrow

parent 29752e25
......@@ -50,7 +50,8 @@ type BeegoInput struct {
// NewInput return BeegoInput generated by Context.
func NewInput() *BeegoInput {
return &BeegoInput{
pvalues: make([]string, maxParam),
pnames: make([]string, 0, maxParam),
pvalues: make([]string, 0, maxParam),
data: make(map[interface{}]interface{}),
}
}
......@@ -60,6 +61,7 @@ func (input *BeegoInput) Reset(ctx *Context) {
input.Context = ctx
input.CruSession = nil
input.pnames = input.pnames[:0]
input.pvalues = input.pvalues[:0]
input.data = nil
input.RequestBody = []byte{}
}
......@@ -264,7 +266,7 @@ func (input *BeegoInput) ParamsLen() int {
// Param returns router param by a given key.
func (input *BeegoInput) Param(key string) string {
for i, v := range input.pnames {
if v == key {
if v == key && i <= len(input.pvalues) {
return input.pvalues[i]
}
}
......@@ -273,7 +275,7 @@ func (input *BeegoInput) Param(key string) string {
// SetParam will set the param with key and value
func (input *BeegoInput) SetParam(key, val string) {
input.pvalues[len(input.pnames)] = val
input.pvalues = append(input.pvalues, val)
input.pnames = append(input.pnames, key)
}
......
......@@ -288,7 +288,8 @@ func (t *Tree) Match(pattern string, ctx *context.Context) (runObject interface{
if len(pattern) == 0 || pattern[0] != '/' {
return nil
}
return t.match(pattern, nil, ctx)
w := make([]string, 0, 20)
return t.match(pattern, w, ctx)
}
func (t *Tree) match(pattern string, wildcardValues []string, ctx *context.Context) (runObject interface{}) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment