@@ -476,7 +476,7 @@ func createEncoderOfType(cfg *frozenConfig, typ reflect.Type) (ValEncoder, error
476476 return & jsoniterNumberCodec {}, nil
477477 }
478478 if typ .Implements (marshalerType ) {
479- checkIsEmpty , err := createCheckIsEmpty (typ )
479+ checkIsEmpty , err := createCheckIsEmpty (cfg , typ )
480480 if err != nil {
481481 return nil , err
482482 }
@@ -491,7 +491,7 @@ func createEncoderOfType(cfg *frozenConfig, typ reflect.Type) (ValEncoder, error
491491 return encoder , nil
492492 }
493493 if reflect .PtrTo (typ ).Implements (marshalerType ) {
494- checkIsEmpty , err := createCheckIsEmpty (reflect .PtrTo (typ ))
494+ checkIsEmpty , err := createCheckIsEmpty (cfg , reflect .PtrTo (typ ))
495495 if err != nil {
496496 return nil , err
497497 }
@@ -503,7 +503,7 @@ func createEncoderOfType(cfg *frozenConfig, typ reflect.Type) (ValEncoder, error
503503 return encoder , nil
504504 }
505505 if typ .Implements (textMarshalerType ) {
506- checkIsEmpty , err := createCheckIsEmpty (typ )
506+ checkIsEmpty , err := createCheckIsEmpty (cfg , typ )
507507 if err != nil {
508508 return nil , err
509509 }
@@ -526,7 +526,7 @@ func createEncoderOfType(cfg *frozenConfig, typ reflect.Type) (ValEncoder, error
526526 return createEncoderOfSimpleType (cfg , typ )
527527}
528528
529- func createCheckIsEmpty (typ reflect.Type ) (checkIsEmpty , error ) {
529+ func createCheckIsEmpty (cfg * frozenConfig , typ reflect.Type ) (checkIsEmpty , error ) {
530530 kind := typ .Kind ()
531531 switch kind {
532532 case reflect .String :
@@ -571,7 +571,7 @@ func createCheckIsEmpty(typ reflect.Type) (checkIsEmpty, error) {
571571 case reflect .Slice :
572572 return & sliceEncoder {}, nil
573573 case reflect .Map :
574- return & mapEncoder {}, nil
574+ return encoderOfMap ( cfg , typ )
575575 case reflect .Ptr :
576576 return & OptionalEncoder {}, nil
577577 default :
0 commit comments