reduce the slicegrow

This commit is contained in:
astaxie 2015-12-16 23:43:32 +08:00
parent 29752e2575
commit dbc4ac6945
2 changed files with 7 additions and 4 deletions

View File

@ -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)
}

View File

@ -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{}) {