Rename transformation methods to folding
This commit is contained in:
@@ -41,12 +41,12 @@ public class FieldRemapper {
|
|||||||
params = methodParams;
|
params = methodParams;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canProcess(@NotNull String fieldOwner, boolean forTransformation) {
|
public boolean canProcess(@NotNull String fieldOwner, boolean isFolding) {
|
||||||
return fieldOwner.equals(getLambdaInternalName());
|
return fieldOwner.equals(getLambdaInternalName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public AbstractInsnNode transformIfNeeded(
|
public AbstractInsnNode foldFieldAccessChainIfNeeded(
|
||||||
@NotNull List<AbstractInsnNode> capturedFieldAccess,
|
@NotNull List<AbstractInsnNode> capturedFieldAccess,
|
||||||
@NotNull MethodNode node
|
@NotNull MethodNode node
|
||||||
) {
|
) {
|
||||||
@@ -55,11 +55,11 @@ public class FieldRemapper {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return transformIfNeeded(capturedFieldAccess, 1, node);
|
return foldFieldAccessChainIfNeeded(capturedFieldAccess, 1, node);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private AbstractInsnNode transformIfNeeded(
|
private AbstractInsnNode foldFieldAccessChainIfNeeded(
|
||||||
@NotNull List<AbstractInsnNode> capturedFieldAccess,
|
@NotNull List<AbstractInsnNode> capturedFieldAccess,
|
||||||
int currentInstruction,
|
int currentInstruction,
|
||||||
@NotNull MethodNode node
|
@NotNull MethodNode node
|
||||||
@@ -67,7 +67,7 @@ public class FieldRemapper {
|
|||||||
AbstractInsnNode transformed = null;
|
AbstractInsnNode transformed = null;
|
||||||
boolean checkParent = !isRoot() && currentInstruction < capturedFieldAccess.size() - 1;
|
boolean checkParent = !isRoot() && currentInstruction < capturedFieldAccess.size() - 1;
|
||||||
if (checkParent) {
|
if (checkParent) {
|
||||||
transformed = parent.transformIfNeeded(capturedFieldAccess, currentInstruction + 1, node);
|
transformed = parent.foldFieldAccessChainIfNeeded(capturedFieldAccess, currentInstruction + 1, node);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (transformed == null) {
|
if (transformed == null) {
|
||||||
|
|||||||
@@ -34,8 +34,8 @@ public class InlinedLambdaRemapper extends FieldRemapper {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canProcess(@NotNull String fieldOwner, boolean forTransformation) {
|
public boolean canProcess(@NotNull String fieldOwner, boolean isFolding) {
|
||||||
return forTransformation ? super.canProcess(fieldOwner, forTransformation) : false;
|
return isFolding ? super.canProcess(fieldOwner, isFolding) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -410,7 +410,7 @@ public class MethodInliner {
|
|||||||
if (cur instanceof VarInsnNode && cur.getOpcode() == Opcodes.ALOAD) {
|
if (cur instanceof VarInsnNode && cur.getOpcode() == Opcodes.ALOAD) {
|
||||||
if (((VarInsnNode) cur).var == 0) {
|
if (((VarInsnNode) cur).var == 0) {
|
||||||
List<AbstractInsnNode> accessChain = getCapturedFieldAccessChain((VarInsnNode) cur);
|
List<AbstractInsnNode> accessChain = getCapturedFieldAccessChain((VarInsnNode) cur);
|
||||||
AbstractInsnNode insnNode = nodeRemapper.transformIfNeeded(accessChain, node);
|
AbstractInsnNode insnNode = nodeRemapper.foldFieldAccessChainIfNeeded(accessChain, node);
|
||||||
if (insnNode != null) {
|
if (insnNode != null) {
|
||||||
cur = insnNode;
|
cur = insnNode;
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -51,8 +51,8 @@ public class RegeneratedLambdaFieldRemapper extends FieldRemapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canProcess(@NotNull String fieldOwner, boolean forTransformation) {
|
public boolean canProcess(@NotNull String fieldOwner, boolean isFolding) {
|
||||||
return super.canProcess(fieldOwner, forTransformation) || isRecapturedLambdaType(fieldOwner);
|
return super.canProcess(fieldOwner, isFolding) || isRecapturedLambdaType(fieldOwner);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isRecapturedLambdaType(String owner) {
|
private boolean isRecapturedLambdaType(String owner) {
|
||||||
|
|||||||
Reference in New Issue
Block a user