From 63d398ecc2baf580d8e1ce80e96b4dc35ef2b3f9 Mon Sep 17 00:00:00 2001 From: Philip Hofer Date: Mon, 25 Sep 2017 09:47:12 -0700 Subject: [PATCH] use the appropriate base conversion in decode generation --- _generated/def.go | 17 +++++++++++++++++ gen/decode.go | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/_generated/def.go b/_generated/def.go index db39af03..6a928ae8 100644 --- a/_generated/def.go +++ b/_generated/def.go @@ -1,6 +1,7 @@ package _generated import ( + "math/big" "os" "time" @@ -263,3 +264,19 @@ type NonMsgStructTags struct { } } } + +//msgp:shim big.Int as:[]byte using:i2b/b2i + +func b2i(b []byte) big.Int { + var i big.Int + i.SetBytes(b) + return i +} + +func i2b(i big.Int) []byte { + return i.Bytes() +} + +type Issue203 struct { + Value big.Int `msg:"value"` +} diff --git a/gen/decode.go b/gen/decode.go index 3ba88fad..a45e8f7b 100644 --- a/gen/decode.go +++ b/gen/decode.go @@ -128,7 +128,7 @@ func (d *decodeGen) gBase(b *BaseElem) { switch b.Value { case Bytes: if b.Convert { - d.p.printf("\n%s, err = dc.ReadBytes([]byte(%s))", tmp, vname) + d.p.printf("\n%s, err = dc.ReadBytes(%s)", tmp, tobaseConvert(b)) } else { d.p.printf("\n%s, err = dc.ReadBytes(%s)", vname, vname) }