1919
2020package org .apache .fory ;
2121
22+ import com .google .common .base .Objects ;
2223import java .io .ByteArrayOutputStream ;
2324import java .io .IOException ;
2425import java .io .OutputStream ;
2526import java .util .ArrayList ;
2627import java .util .Arrays ;
2728import java .util .HashMap ;
28- import java .util .HashSet ;
2929import java .util .Iterator ;
30- import java .util .Set ;
3130import java .util .function .Consumer ;
3231import java .util .function .Function ;
3332import javax .annotation .concurrent .NotThreadSafe ;
@@ -130,7 +129,6 @@ public final class Fory implements BaseFory {
130129 private final boolean copyRefTracking ;
131130 private final IdentityMap <Object , Object > originToCopyMap ;
132131 private int configHash ;
133- private final Set <String > registeredSerializers = new HashSet <>();
134132
135133 public Fory (ForyBuilder builder , ClassLoader classLoader ) {
136134 // Avoid set classLoader in `ForyBuilder`, which won't be clear when
@@ -231,13 +229,13 @@ public void register(String className, String namespace, String typeName) {
231229 @ Override
232230 public <T > void registerSerializer (Class <T > type , Class <? extends Serializer > serializerClass ) {
233231 _getTypeResolver ().registerSerializer (type , serializerClass );
234- registeredSerializers .add (type .getName () + ":" + serializerClass .getName ());
235- invalidateCodegenCache ();
232+ this .configHash = Objects .hashCode (configHash , type , serializerClass );
236233 }
237234
238235 @ Override
239236 public void registerSerializer (Class <?> type , Serializer <?> serializer ) {
240237 _getTypeResolver ().registerSerializer (type , serializer );
238+ this .configHash = Objects .hashCode (configHash , type , serializer .getClass ());
241239 }
242240
243241 @ Override
@@ -249,14 +247,6 @@ public int getConfigHash() {
249247 return configHash ;
250248 }
251249
252- private void invalidateCodegenCache () {
253- int result = config .hashCode ();
254- for (String serializerClassName : registeredSerializers ) {
255- result = 31 * result + serializerClassName .hashCode ();
256- }
257- this .configHash = result ;
258- }
259-
260250 @ Override
261251 public <T > void registerSerializerAndType (
262252 Class <T > type , Class <? extends Serializer > serializerClass ) {
0 commit comments