refactor: update duplicate methods in InsnArg classes
This commit is contained in:
@@ -58,6 +58,11 @@ public final class FieldArg extends RegisterArg {
|
||||
throw new JadxRuntimeException("Can't set type for FieldArg");
|
||||
}
|
||||
|
||||
@Override
|
||||
public RegisterArg duplicate() {
|
||||
return copyCommonParams(new FieldArg(field, instArg));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj) {
|
||||
|
||||
@@ -159,7 +159,7 @@ public abstract class InsnArg extends Typed {
|
||||
return contains(AFlag.THIS);
|
||||
}
|
||||
|
||||
protected InsnArg copyCommonParams(InsnArg copy) {
|
||||
protected final <T extends InsnArg> T copyCommonParams(T copy) {
|
||||
copy.copyAttributesFrom(this);
|
||||
copy.setParentInsn(parentInsn);
|
||||
return copy;
|
||||
|
||||
@@ -48,6 +48,13 @@ public final class LiteralArg extends InsnArg {
|
||||
|| type == PrimitiveType.LONG;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InsnArg duplicate() {
|
||||
LiteralArg copy = new LiteralArg(literal, getType());
|
||||
copy.type = type;
|
||||
return copyCommonParams(copy);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return (int) (literal ^ literal >>> 32) + 31 * getType().hashCode();
|
||||
|
||||
@@ -26,6 +26,16 @@ public final class NamedArg extends InsnArg implements Named {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InsnArg duplicate() {
|
||||
return copyCommonParams(new NamedArg(name, type));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return name.hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
@@ -37,11 +47,6 @@ public final class NamedArg extends InsnArg implements Named {
|
||||
return name.equals(((NamedArg) o).name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return name.hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return '(' + name + ' ' + type + ')';
|
||||
|
||||
@@ -115,8 +115,7 @@ public class RegisterArg extends InsnArg implements Named {
|
||||
if (sVar != null) {
|
||||
dup.setSVar(sVar);
|
||||
}
|
||||
dup.copyAttributesFrom(this);
|
||||
return dup;
|
||||
return copyCommonParams(dup);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
Reference in New Issue
Block a user