jimu-decompiled/sources/com/squareup/haha/perflib/ClassInstance.java
2025-05-13 19:24:51 +02:00

77 lines
2.3 KiB
Java

package com.squareup.haha.perflib;
import java.util.ArrayList;
import java.util.List;
/* loaded from: classes.dex */
public class ClassInstance extends Instance {
private final long mValuesOffset;
public static class FieldValue {
private Field mField;
private Object mValue;
public FieldValue(Field field, Object obj) {
this.mField = field;
this.mValue = obj;
}
public Field getField() {
return this.mField;
}
public Object getValue() {
return this.mValue;
}
}
public ClassInstance(long j, StackTrace stackTrace, long j2) {
super(j, stackTrace);
this.mValuesOffset = j2;
}
@Override // com.squareup.haha.perflib.Instance
public final void accept(Visitor visitor) {
visitor.visitClassInstance(this);
for (FieldValue fieldValue : getValues()) {
if (fieldValue.getValue() instanceof Instance) {
if (!this.mReferencesAdded) {
((Instance) fieldValue.getValue()).addReference(fieldValue.getField(), this);
}
visitor.visitLater(this, (Instance) fieldValue.getValue());
}
}
this.mReferencesAdded = true;
}
List<FieldValue> getFields(String str) {
ArrayList arrayList = new ArrayList();
for (FieldValue fieldValue : getValues()) {
if (fieldValue.getField().getName().equals(str)) {
arrayList.add(fieldValue);
}
}
return arrayList;
}
@Override // com.squareup.haha.perflib.Instance
public boolean getIsSoftReference() {
return getClassObj().getIsSoftReference();
}
public List<FieldValue> getValues() {
ArrayList arrayList = new ArrayList();
getBuffer().setPosition(this.mValuesOffset);
for (ClassObj classObj = getClassObj(); classObj != null; classObj = classObj.getSuperClassObj()) {
for (Field field : classObj.getFields()) {
arrayList.add(new FieldValue(field, readValue(field.getType())));
}
}
return arrayList;
}
public final String toString() {
return String.format("%s@%d (0x%x)", getClassObj().getClassName(), Long.valueOf(getUniqueId()), Long.valueOf(getUniqueId()));
}
}