1
0
mirror of https://github.com/json-iterator/go.git synced 2025-02-19 19:59:49 +02:00

get encoder without get type first

This commit is contained in:
Tao Wen 2018-02-22 10:20:19 +08:00
parent 820ec30bd6
commit d346ea6e55

View File

@ -75,8 +75,12 @@ func (stream *Stream) WriteVal(val interface{}) {
stream.WriteNil() stream.WriteNil()
return return
} }
typ := reflect2.TypeOf(val) cacheKey := reflect2.RTypeOf(val)
encoder := stream.cfg.EncoderOf(typ) encoder := stream.cfg.getEncoderFromCache(cacheKey)
if encoder == nil {
typ := reflect2.TypeOf(val)
encoder = stream.cfg.EncoderOf(typ)
}
encoder.Encode(reflect2.PtrOf(val), stream) encoder.Encode(reflect2.PtrOf(val), stream)
} }