aboutsummaryrefslogtreecommitdiffstats
path: root/src/proguard/classfile/editor/ConstantPoolRemapper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/proguard/classfile/editor/ConstantPoolRemapper.java')
-rw-r--r--src/proguard/classfile/editor/ConstantPoolRemapper.java105
1 files changed, 30 insertions, 75 deletions
diff --git a/src/proguard/classfile/editor/ConstantPoolRemapper.java b/src/proguard/classfile/editor/ConstantPoolRemapper.java
index 7677218..7430d3d 100644
--- a/src/proguard/classfile/editor/ConstantPoolRemapper.java
+++ b/src/proguard/classfile/editor/ConstantPoolRemapper.java
@@ -2,7 +2,7 @@
* ProGuard -- shrinking, optimization, obfuscation, and preverification
* of Java bytecode.
*
- * Copyright (c) 2002-2011 Eric Lafortune (eric@graphics.cornell.edu)
+ * Copyright (c) 2002-2009 Eric Lafortune (eric@graphics.cornell.edu)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
@@ -47,10 +47,9 @@ implements ClassVisitor,
ConstantVisitor,
MemberVisitor,
AttributeVisitor,
- BootstrapMethodInfoVisitor,
+ InstructionVisitor,
InnerClassesInfoVisitor,
ExceptionInfoVisitor,
- InstructionVisitor,
StackMapFrameVisitor,
VerificationTypeVisitor,
LocalVariableInfoVisitor,
@@ -58,7 +57,7 @@ implements ClassVisitor,
AnnotationVisitor,
ElementValueVisitor
{
- private final CodeAttributeEditor codeAttributeEditor = new CodeAttributeEditor(false);
+ private final CodeAttributeEditor codeAttributeEditor = new CodeAttributeEditor();
private int[] constantIndexMap;
@@ -101,21 +100,10 @@ implements ClassVisitor,
// Implementations for ConstantVisitor.
- public void visitIntegerConstant(Clazz clazz, IntegerConstant integerConstant)
- {
- // Nothing to do.
- }
-
-
- public void visitLongConstant(Clazz clazz, LongConstant longConstant)
- {
- // Nothing to do.
- }
-
-
- public void visitFloatConstant(Clazz clazz, FloatConstant floatConstant)
+ public void visitClassConstant(Clazz clazz, ClassConstant classConstant)
{
- // Nothing to do.
+ classConstant.u2nameIndex =
+ remapConstantIndex(classConstant.u2nameIndex);
}
@@ -125,39 +113,24 @@ implements ClassVisitor,
}
- public void visitStringConstant(Clazz clazz, StringConstant stringConstant)
+ public void visitFieldrefConstant(Clazz clazz, FieldrefConstant fieldrefConstant)
{
- stringConstant.u2stringIndex =
- remapConstantIndex(stringConstant.u2stringIndex);
+ fieldrefConstant.u2classIndex =
+ remapConstantIndex(fieldrefConstant.u2classIndex);
+ fieldrefConstant.u2nameAndTypeIndex =
+ remapConstantIndex(fieldrefConstant.u2nameAndTypeIndex);
}
- public void visitUtf8Constant(Clazz clazz, Utf8Constant utf8Constant)
+ public void visitFloatConstant(Clazz clazz, FloatConstant floatConstant)
{
// Nothing to do.
}
- public void visitInvokeDynamicConstant(Clazz clazz, InvokeDynamicConstant invokeDynamicConstant)
- {
- invokeDynamicConstant.u2nameAndTypeIndex =
- remapConstantIndex(invokeDynamicConstant.u2nameAndTypeIndex);
- }
-
-
- public void visitMethodHandleConstant(Clazz clazz, MethodHandleConstant methodHandleConstant)
- {
- methodHandleConstant.u2referenceIndex =
- remapConstantIndex(methodHandleConstant.u2referenceIndex);
- }
-
-
- public void visitFieldrefConstant(Clazz clazz, FieldrefConstant fieldrefConstant)
+ public void visitIntegerConstant(Clazz clazz, IntegerConstant integerConstant)
{
- fieldrefConstant.u2classIndex =
- remapConstantIndex(fieldrefConstant.u2classIndex);
- fieldrefConstant.u2nameAndTypeIndex =
- remapConstantIndex(fieldrefConstant.u2nameAndTypeIndex);
+ // Nothing to do.
}
@@ -170,6 +143,12 @@ implements ClassVisitor,
}
+ public void visitLongConstant(Clazz clazz, LongConstant longConstant)
+ {
+ // Nothing to do.
+ }
+
+
public void visitMethodrefConstant(Clazz clazz, MethodrefConstant methodrefConstant)
{
methodrefConstant.u2classIndex =
@@ -179,26 +158,25 @@ implements ClassVisitor,
}
- public void visitClassConstant(Clazz clazz, ClassConstant classConstant)
+ public void visitNameAndTypeConstant(Clazz clazz, NameAndTypeConstant nameAndTypeConstant)
{
- classConstant.u2nameIndex =
- remapConstantIndex(classConstant.u2nameIndex);
+ nameAndTypeConstant.u2nameIndex =
+ remapConstantIndex(nameAndTypeConstant.u2nameIndex);
+ nameAndTypeConstant.u2descriptorIndex =
+ remapConstantIndex(nameAndTypeConstant.u2descriptorIndex);
}
- public void visitMethodTypeConstant(Clazz clazz, MethodTypeConstant methodTypeConstant)
+ public void visitStringConstant(Clazz clazz, StringConstant stringConstant)
{
- methodTypeConstant.u2descriptorIndex =
- remapConstantIndex(methodTypeConstant.u2descriptorIndex);
+ stringConstant.u2stringIndex =
+ remapConstantIndex(stringConstant.u2stringIndex);
}
- public void visitNameAndTypeConstant(Clazz clazz, NameAndTypeConstant nameAndTypeConstant)
+ public void visitUtf8Constant(Clazz clazz, Utf8Constant utf8Constant)
{
- nameAndTypeConstant.u2nameIndex =
- remapConstantIndex(nameAndTypeConstant.u2nameIndex);
- nameAndTypeConstant.u2descriptorIndex =
- remapConstantIndex(nameAndTypeConstant.u2descriptorIndex);
+ // Nothing to do.
}
@@ -252,16 +230,6 @@ implements ClassVisitor,
}
- public void visitBootstrapMethodsAttribute(Clazz clazz, BootstrapMethodsAttribute bootstrapMethodsAttribute)
- {
- bootstrapMethodsAttribute.u2attributeNameIndex =
- remapConstantIndex(bootstrapMethodsAttribute.u2attributeNameIndex);
-
- // Remap the constant pool references of the bootstrap method entries.
- bootstrapMethodsAttribute.bootstrapMethodEntriesAccept(clazz, this);
- }
-
-
public void visitSourceFileAttribute(Clazz clazz, SourceFileAttribute sourceFileAttribute)
{
sourceFileAttribute.u2attributeNameIndex =
@@ -442,19 +410,6 @@ implements ClassVisitor,
}
- // Implementations for BootstrapMethodInfoVisitor.
-
- public void visitBootstrapMethodInfo(Clazz clazz, BootstrapMethodInfo bootstrapMethodInfo)
- {
- bootstrapMethodInfo.u2methodHandleIndex =
- remapConstantIndex(bootstrapMethodInfo.u2methodHandleIndex);
-
- // Remap the constant pool references of the bootstrap methods..
- remapConstantIndexArray(bootstrapMethodInfo.u2methodArguments,
- bootstrapMethodInfo.u2methodArgumentCount);
- }
-
-
// Implementations for InnerClassesInfoVisitor.
public void visitInnerClassesInfo(Clazz clazz, InnerClassesInfo innerClassesInfo)