discord-jadx/app/src/main/java/com/esotericsoftware/kryo/util/MapReferenceResolver.java
2021-06-27 22:44:35 +02:00

57 lines
1.8 KiB
Java

package com.esotericsoftware.kryo.util;
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.ReferenceResolver;
import java.util.ArrayList;
public class MapReferenceResolver implements ReferenceResolver {
public Kryo kryo;
public final ArrayList readObjects = new ArrayList();
public final IdentityObjectIntMap writtenObjects = new IdentityObjectIntMap();
@Override // com.esotericsoftware.kryo.ReferenceResolver
public int addWrittenObject(Object obj) {
IdentityObjectIntMap identityObjectIntMap = this.writtenObjects;
int i = identityObjectIntMap.size;
identityObjectIntMap.put(obj, i);
return i;
}
@Override // com.esotericsoftware.kryo.ReferenceResolver
public Object getReadObject(Class cls, int i) {
return this.readObjects.get(i);
}
@Override // com.esotericsoftware.kryo.ReferenceResolver
public int getWrittenId(Object obj) {
return this.writtenObjects.get(obj, -1);
}
@Override // com.esotericsoftware.kryo.ReferenceResolver
public int nextReadId(Class cls) {
int size = this.readObjects.size();
this.readObjects.add(null);
return size;
}
@Override // com.esotericsoftware.kryo.ReferenceResolver
public void reset() {
this.readObjects.clear();
this.writtenObjects.clear(2048);
}
@Override // com.esotericsoftware.kryo.ReferenceResolver
public void setKryo(Kryo kryo) {
this.kryo = kryo;
}
@Override // com.esotericsoftware.kryo.ReferenceResolver
public void setReadObject(int i, Object obj) {
this.readObjects.set(i, obj);
}
@Override // com.esotericsoftware.kryo.ReferenceResolver
public boolean useReferences(Class cls) {
return !Util.isWrapperClass(cls);
}
}