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