mirror of
https://github.com/revanced/smali.git
synced 2025-05-28 20:00:13 +02:00
Refactor EnumEncodedValue to use a field reference
This commit is contained in:
parent
b76e75c8bc
commit
e27e44bee3
@ -60,7 +60,7 @@ public abstract class EncodedValueAdaptor {
|
||||
return;
|
||||
case ValueType.ENUM:
|
||||
writer.write(".enum ");
|
||||
writer.write(((EnumEncodedValue)encodedValue).getValue());
|
||||
ReferenceUtil.writeFieldDescriptor(writer, ((EnumEncodedValue)encodedValue).getValue());
|
||||
return;
|
||||
case ValueType.FIELD:
|
||||
ReferenceUtil.writeFieldDescriptor(writer, ((FieldEncodedValue)encodedValue).getValue());
|
||||
|
@ -92,7 +92,8 @@ public abstract class DexBackedEncodedValue {
|
||||
reader.readSizedSmallUint(valueArg + 1)));
|
||||
case ValueType.ENUM:
|
||||
Preconditions.checkValueArg(valueArg, 3);
|
||||
return new ImmutableEnumEncodedValue(reader.getField(reader.readSizedSmallUint(valueArg + 1)));
|
||||
return new ImmutableEnumEncodedValue(new DexBackedFieldReference(reader.getDexBuffer(),
|
||||
reader.readSizedSmallUint(valueArg + 1)));
|
||||
case ValueType.ARRAY:
|
||||
Preconditions.checkValueArg(valueArg, 0);
|
||||
return new DexBackedArrayEncodedValue(reader);
|
||||
|
@ -31,8 +31,10 @@
|
||||
|
||||
package org.jf.dexlib2.iface.value;
|
||||
|
||||
import org.jf.dexlib2.iface.reference.FieldReference;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public interface EnumEncodedValue extends EncodedValue {
|
||||
@Nonnull String getValue();
|
||||
@Nonnull FieldReference getValue();
|
||||
}
|
||||
|
@ -32,15 +32,16 @@
|
||||
package org.jf.dexlib2.immutable.value;
|
||||
|
||||
import org.jf.dexlib2.base.value.BaseEnumEncodedValue;
|
||||
import org.jf.dexlib2.iface.reference.FieldReference;
|
||||
import org.jf.dexlib2.iface.value.EnumEncodedValue;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public class ImmutableEnumEncodedValue extends BaseEnumEncodedValue
|
||||
implements ImmutableEncodedValue, EnumEncodedValue {
|
||||
@Nonnull public final String value;
|
||||
@Nonnull public final FieldReference value;
|
||||
|
||||
public ImmutableEnumEncodedValue(@Nonnull String value) {
|
||||
public ImmutableEnumEncodedValue(@Nonnull FieldReference value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@ -51,5 +52,5 @@ public class ImmutableEnumEncodedValue extends BaseEnumEncodedValue
|
||||
return new ImmutableEnumEncodedValue(enumEncodedValue.getValue());
|
||||
}
|
||||
|
||||
@Nonnull @Override public String getValue() { return value; }
|
||||
@Nonnull @Override public FieldReference getValue() { return value; }
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user