mirror of
https://github.com/infinite-iroha/touka.git
synced 2026-02-03 08:51:11 +08:00
[context] fix writer reset
This commit is contained in:
parent
1618f89ba5
commit
61e67bc2a0
1 changed files with 2 additions and 10 deletions
12
context.go
12
context.go
|
|
@ -59,16 +59,8 @@ type Context struct {
|
|||
// reset 重置 Context 对象以供复用。
|
||||
// 每次从 sync.Pool 中获取 Context 后,都需要调用此方法进行初始化。
|
||||
func (c *Context) reset(w http.ResponseWriter, req *http.Request) {
|
||||
// 每次重置时,确保 Writer 包装的是最新的 http.ResponseWriter
|
||||
// 并重置其内部状态
|
||||
if rw, ok := c.Writer.(*responseWriterImpl); ok {
|
||||
rw.ResponseWriter = w
|
||||
rw.status = 0
|
||||
rw.size = 0
|
||||
} else {
|
||||
// 如果 c.Writer 不是 responseWriterImpl,重新创建
|
||||
c.Writer = newResponseWriter(w)
|
||||
}
|
||||
|
||||
c.Writer = newResponseWriter(w)
|
||||
|
||||
c.Request = req
|
||||
c.Params = c.Params[:0] // 清空 Params 切片,而不是重新分配,以复用底层数组
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue