diff --git a/binary/pool.go b/binary/pool.go index 9f6e3f05..02c8b2b9 100644 --- a/binary/pool.go +++ b/binary/pool.go @@ -16,11 +16,10 @@ var bufferPool = sync.Pool{ // SelectWriter 从池中取出一个 Writer func SelectWriter() *Writer { - w := bufferPool.Get().(*Writer) - if w == nil { - return new(Writer) - } - return w + // 因为 bufferPool 定义有 New 函数 + // 所以 bufferPool.Get() 永不为 nil + // 不用判空 + return bufferPool.Get().(*Writer) } // PutWriter 将 Writer 放回池中 @@ -103,9 +102,9 @@ var b256kPool = sync.Pool{ // Get256KBytes 获取一个128k大小 []byte func Get256KBytes() *[]byte { buf := b256kPool.Get().(*[]byte) - if buf == nil { - return make128kSlicePointer() - } + // 因为 b256kPool 定义有 New 函数 + // 所以 b256kPool.Get() 永不为 nil + // 不用判空 if cap(*buf) < size256k { return make128kSlicePointer() } diff --git a/binary/writer.go b/binary/writer.go index 37e99d2d..1441d95f 100644 --- a/binary/writer.go +++ b/binary/writer.go @@ -69,9 +69,7 @@ func (w *Writer) WriteBool(b bool) { } func (w *Writer) EncryptAndWrite(key []byte, data []byte) { - tea := NewTeaCipher(key) - ed := tea.Encrypt(data) - w.Write(ed) + w.Write(NewTeaCipher(key).Encrypt(data)) } func (w *Writer) WriteIntLvPacket(offset int, f func(writer *Writer)) {