marcoferrer commented on a change in pull request #2492:
URL: https://github.com/apache/thrift/pull/2492#discussion_r770987073



##########
File path: lib/go/thrift/header_transport.go
##########
@@ -628,24 +633,25 @@ func (t *THeaderTransport) Flush(ctx context.Context) 
error {
                        }
                }
 
-               var payload bytes.Buffer
+               payload := getBufFromPool()
+               defer returnBufToPool(&payload)
                meta := headerMeta{
                        MagicFlags:   THeaderHeaderMagic + 
t.Flags&THeaderFlagsMask,
                        SequenceID:   t.SequenceID,
                        HeaderLength: uint16(headers.Len() / 4),
                }
-               if err := binary.Write(&payload, binary.BigEndian, meta); err 
!= nil {
+               if err := binary.Write(payload, binary.BigEndian, meta); err != 
nil {
                        return NewTTransportExceptionFromError(err)
                }
-               if _, err := io.Copy(&payload, headers); err != nil {
+               if _, err := io.Copy(payload, headers); err != nil {
                        return NewTTransportExceptionFromError(err)
                }
 
-               writer, err := NewTransformWriter(&payload, t.writeTransforms)
+               writer, err := NewTransformWriter(payload, t.writeTransforms)
                if err != nil {
                        return NewTTransportExceptionFromError(err)
                }
-               if _, err := io.Copy(writer, &t.writeBuffer); err != nil {
+               if _, err := io.Copy(writer, t.writeBuffer); err != nil {
                        return NewTTransportExceptionFromError(err)
                }
                if err := writer.Close(); err != nil {

Review comment:
       Curious. If we return an error on line 655 would that mean the `writer` 
is never closed? Reason why I ask is because at first glance, 
`NewTransformWriter` could potentially allocate a new zlib writer (line 221) 
which would never get closed. But I could just be missing something in my 
understand of how this works




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to