Browse Source

codecgen: handle struct fields of type *time.Time correctly

Fixes #240
Ugorji Nwoke 7 years ago
parent
commit
b4c50a2b19
2 changed files with 2 additions and 2 deletions
  1. 1 2
      codec/gen.go
  2. 1 0
      codec/values_flex_test.go

+ 1 - 2
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
 		}

+ 1 - 0
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