Skip to content

Commit d346ea6

Browse files
committed
get encoder without get type first
1 parent 820ec30 commit d346ea6

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

reflect.go

+6-2
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,12 @@ func (stream *Stream) WriteVal(val interface{}) {
7575
stream.WriteNil()
7676
return
7777
}
78-
typ := reflect2.TypeOf(val)
79-
encoder := stream.cfg.EncoderOf(typ)
78+
cacheKey := reflect2.RTypeOf(val)
79+
encoder := stream.cfg.getEncoderFromCache(cacheKey)
80+
if encoder == nil {
81+
typ := reflect2.TypeOf(val)
82+
encoder = stream.cfg.EncoderOf(typ)
83+
}
8084
encoder.Encode(reflect2.PtrOf(val), stream)
8185
}
8286

0 commit comments

Comments
 (0)