Skip to content

Commit dfbbaed

Browse files
sagiruthviknealeu
authored andcommitted
refactor: compute configHash inline using Objects.hash() instead of counter
1 parent 906b27d commit dfbbaed

1 file changed

Lines changed: 3 additions & 13 deletions

File tree

  • java/fory-core/src/main/java/org/apache/fory

java/fory-core/src/main/java/org/apache/fory/Fory.java

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,14 @@
1919

2020
package org.apache.fory;
2121

22+
import com.google.common.base.Objects;
2223
import java.io.ByteArrayOutputStream;
2324
import java.io.IOException;
2425
import java.io.OutputStream;
2526
import java.util.ArrayList;
2627
import java.util.Arrays;
2728
import java.util.HashMap;
28-
import java.util.HashSet;
2929
import java.util.Iterator;
30-
import java.util.Set;
3130
import java.util.function.Consumer;
3231
import java.util.function.Function;
3332
import 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

Comments
 (0)