From 3706b9519fea258394a9c222e6dfa4125db84ea9 Mon Sep 17 00:00:00 2001 From: Jack Christensen Date: Thu, 26 Jun 2014 08:39:29 -0500 Subject: [PATCH] Do not defer in rxMsgHeader Slightly faster. --- conn.go | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/conn.go b/conn.go index ea979770..cda028aa 100644 --- a/conn.go +++ b/conn.go @@ -959,19 +959,20 @@ func (c *Conn) rxMsgHeader() (t byte, bodySize int32, err error) { return 0, 0, DeadConnError } - defer func() { - if err != nil { - c.die(err) - } - }() - t, err = c.reader.ReadByte() if err != nil { - return + c.die(err) + return 0, 0, err } + err = binary.Read(c.reader, binary.BigEndian, &bodySize) + if err != nil { + c.die(err) + return 0, 0, err + } + bodySize -= 4 // remove self from size - return + return t, bodySize, err } func (c *Conn) rxMsgBody(bodySize int32) (*bytes.Buffer, error) {