浏览代码

Better edge case handling

Ben Hood 11 年之前
父节点
当前提交
712d53a3dc
共有 1 个文件被更改,包括 5 次插入1 次删除
  1. 5 1
      marshal.go

+ 5 - 1
marshal.go

@@ -717,8 +717,12 @@ func unmarshalDecimal(info *TypeInfo, data []byte, value interface{}) error {
 			scale := decInt(data[0:4])
 			unscaled := decBigInt2C(data[4:])
 			*v = inf.NewDecBig(unscaled, inf.Scale(scale))
+			return nil
+		} else if len(data) == 0 {
+			return nil
+		} else {
+			return unmarshalErrorf("can not unmarshal %s into %T", info, value)
 		}
-		return nil
 	}
 	return unmarshalErrorf("can not unmarshal %s into %T", info, value)
 }