Browse Source

codec: style changes

Ugorji Nwoke 8 years ago
parent
commit
39db4a8063
2 changed files with 25 additions and 28 deletions
  1. 12 15
      codec/msgpack.go
  2. 13 13
      codec/rpc.go

+ 12 - 15
codec/msgpack.go

@@ -974,21 +974,18 @@ func (c *msgpackSpecRpcCodec) parseCustomHeader(expectTypeByte byte, msgid *uint
 	var b = ba[0]
 	if b != fia {
 		err = fmt.Errorf("Unexpected value for array descriptor: Expecting %v. Received %v", fia, b)
-		return
-	}
-
-	if err = c.read(&b); err != nil {
-		return
-	}
-	if b != expectTypeByte {
-		err = fmt.Errorf("Unexpected byte descriptor in header. Expecting %v. Received %v", expectTypeByte, b)
-		return
-	}
-	if err = c.read(msgid); err != nil {
-		return
-	}
-	if err = c.read(methodOrError); err != nil {
-		return
+	} else {
+		err = c.read(&b)
+		if err == nil {
+			if b != expectTypeByte {
+				err = fmt.Errorf("Unexpected byte descriptor in header. Expecting %v. Received %v", expectTypeByte, b)
+			} else {
+				err = c.read(msgid)
+				if err == nil {
+					err = c.read(methodOrError)
+				}
+			}
+		}
 	}
 	return
 }

+ 13 - 13
codec/rpc.go

@@ -68,20 +68,23 @@ func (c *rpcCodec) write(obj1, obj2 interface{}, writeObj2 bool) (err error) {
 	if c.isClosed() {
 		return c.clsErr
 	}
-	if err = c.enc.Encode(obj1); err != nil {
-		return
-	}
-	if writeObj2 {
-		if err = c.enc.Encode(obj2); err != nil {
-			return
+	err = c.enc.Encode(obj1)
+	if err == nil {
+		if writeObj2 {
+			err = c.enc.Encode(obj2)
+		}
+		if err == nil && c.f != nil {
+			err = c.f.Flush()
 		}
-	}
-	if c.f != nil {
-		return c.f.Flush()
 	}
 	return
 }
 
+func (c *rpcCodec) swallow(err *error) {
+	defer panicToErr(err)
+	c.dec.swallow()
+}
+
 func (c *rpcCodec) read(obj interface{}) (err error) {
 	if c.isClosed() {
 		return c.clsErr
@@ -90,10 +93,7 @@ func (c *rpcCodec) read(obj interface{}) (err error) {
 	if obj == nil {
 		// var obj2 interface{}
 		// return c.dec.Decode(&obj2)
-		func() {
-			defer panicToErr(&err)
-			c.dec.swallow()
-		}()
+		c.swallow(&err)
 		return
 	}
 	return c.dec.Decode(obj)