mirror of
https://github.com/astaxie/beego.git
synced 2025-06-11 04:40:39 +00:00
fix memory leak of request context
This commit is contained in:
@ -323,8 +323,36 @@ func (input *BeegoInput) SetParam(key, val string) {
|
||||
// This function is used to clear parameters so they may be reset between filter
|
||||
// passes.
|
||||
func (input *BeegoInput) ResetParams() {
|
||||
input.pnames = input.pnames[:0]
|
||||
input.pvalues = input.pvalues[:0]
|
||||
if len(input.pnames) > 0 {
|
||||
input.pnames = input.pnames[:0]
|
||||
}
|
||||
if len(input.pvalues) > 0 {
|
||||
input.pvalues = input.pvalues[:0]
|
||||
}
|
||||
}
|
||||
|
||||
// ResetData: reset data
|
||||
func (input *BeegoInput) ResetData() {
|
||||
input.dataLock.Lock()
|
||||
if input.data != nil {
|
||||
input.data = nil
|
||||
}
|
||||
input.dataLock.Unlock()
|
||||
}
|
||||
|
||||
// ResetBody: reset body
|
||||
func (input *BeegoInput) ResetBody() {
|
||||
if len(input.RequestBody) > 0 {
|
||||
input.RequestBody = []byte{}
|
||||
}
|
||||
}
|
||||
|
||||
// Clear: clear all data in input
|
||||
func (input *BeegoInput) Clear() {
|
||||
input.ResetParams()
|
||||
input.ResetData()
|
||||
input.ResetBody()
|
||||
|
||||
}
|
||||
|
||||
// Query returns input data item string by a given string.
|
||||
|
@ -50,9 +50,15 @@ func NewOutput() *BeegoOutput {
|
||||
// Reset init BeegoOutput
|
||||
func (output *BeegoOutput) Reset(ctx *Context) {
|
||||
output.Context = ctx
|
||||
output.Clear()
|
||||
}
|
||||
|
||||
// Clear: clear all data in output
|
||||
func (output *BeegoOutput) Clear() {
|
||||
output.Status = 0
|
||||
}
|
||||
|
||||
|
||||
// Header sets response header item string via given key.
|
||||
func (output *BeegoOutput) Header(key, val string) {
|
||||
output.Context.ResponseWriter.Header().Set(key, val)
|
||||
|
Reference in New Issue
Block a user