diff options
Diffstat (limited to 'src/proguard/classfile/editor/ConstantPoolRemapper.java')
-rw-r--r-- | src/proguard/classfile/editor/ConstantPoolRemapper.java | 105 |
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) |