From b4c50a2b199d93b13dc15e78929cfb23bfdf21ab Mon Sep 17 00:00:00 2001 From: Ugorji Nwoke Date: Sat, 7 Apr 2018 06:07:33 -0400 Subject: [PATCH] codecgen: handle struct fields of type *time.Time correctly Fixes #240 --- codec/gen.go | 3 +-- codec/values_flex_test.go | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/codec/gen.go b/codec/gen.go index 40fcf962..b4c4031f 100644 --- a/codec/gen.go +++ b/codec/gen.go @@ -542,7 +542,6 @@ func (x *genRunner) selfer(encode bool) { if encode { x.line(") CodecEncodeSelf(e *" + x.cpfx + "Encoder) {") x.genRequiredMethodVars(true) - // x.enc(genTopLevelVarName, t) x.encVar(genTopLevelVarName, t) } else { x.line(") CodecDecodeSelf(d *" + x.cpfx + "Decoder) {") @@ -649,7 +648,7 @@ func (x *genRunner) encVar(varname string, t reflect.Type) { case reflect.Ptr: telem := t.Elem() tek := telem.Kind() - if tek == reflect.Array || (tek == reflect.Struct && t != timeTyp) { + if tek == reflect.Array || (tek == reflect.Struct && telem != timeTyp) { x.enc(varname, genNonPtr(t)) break } diff --git a/codec/values_flex_test.go b/codec/values_flex_test.go index 0aa6922e..6f7de692 100644 --- a/codec/values_flex_test.go +++ b/codec/values_flex_test.go @@ -63,6 +63,7 @@ type AnonInTestStrucIntf struct { Ms map[string]interface{} Nintf interface{} //don't set this, so we can test for nil T time.Time + Tptr *time.Time } var testWRepeated512 wrapBytes