diff options
Diffstat (limited to 'src/proguard/classfile/util/ClassReferenceInitializer.java')
-rw-r--r-- | src/proguard/classfile/util/ClassReferenceInitializer.java | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/src/proguard/classfile/util/ClassReferenceInitializer.java b/src/proguard/classfile/util/ClassReferenceInitializer.java index a5748ee..3baf422 100644 --- a/src/proguard/classfile/util/ClassReferenceInitializer.java +++ b/src/proguard/classfile/util/ClassReferenceInitializer.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 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 @@ -165,7 +165,15 @@ implements ClassVisitor, { // Fill out the String class. stringConstant.javaLangStringClass = - findClass(clazz.getName(), ClassConstants.INTERNAL_NAME_JAVA_LANG_STRING); + findClass(clazz.getName(), ClassConstants.NAME_JAVA_LANG_STRING); + } + + + public void visitInvokeDynamicConstant(Clazz clazz, InvokeDynamicConstant invokeDynamicConstant) + { + invokeDynamicConstant.referencedClasses = + findReferencedClasses(clazz.getName(), + invokeDynamicConstant.getType(clazz)); } @@ -173,7 +181,7 @@ implements ClassVisitor, { // Fill out the MethodHandle class. methodHandleConstant.javaLangInvokeMethodHandleClass = - findClass(clazz.getName(), ClassConstants.INTERNAL_NAME_JAVA_LANG_INVOKE_METHOD_HANDLE); + findClass(clazz.getName(), ClassConstants.NAME_JAVA_LANG_INVOKE_METHOD_HANDLE); } @@ -184,7 +192,7 @@ implements ClassVisitor, // Methods for array types should be found in the Object class. if (ClassUtil.isInternalArrayType(className)) { - className = ClassConstants.INTERNAL_NAME_JAVA_LANG_OBJECT; + className = ClassConstants.NAME_JAVA_LANG_OBJECT; } // See if we can find the referenced class. @@ -246,7 +254,7 @@ implements ClassVisitor, // Fill out the Class class. classConstant.javaLangClassClass = - findClass(className, ClassConstants.INTERNAL_NAME_JAVA_LANG_CLASS); + findClass(className, ClassConstants.NAME_JAVA_LANG_CLASS); } @@ -254,7 +262,11 @@ implements ClassVisitor, { // Fill out the MethodType class. methodTypeConstant.javaLangInvokeMethodTypeClass = - findClass(clazz.getName(), ClassConstants.INTERNAL_NAME_JAVA_LANG_INVOKE_METHOD_TYPE); + findClass(clazz.getName(), ClassConstants.NAME_JAVA_LANG_INVOKE_METHOD_TYPE); + + methodTypeConstant.referencedClasses = + findReferencedClasses(clazz.getName(), + methodTypeConstant.getType(clazz)); } @@ -327,7 +339,7 @@ implements ClassVisitor, { signatureAttribute.referencedClasses = findReferencedClasses(clazz.getName(), - clazz.getString(signatureAttribute.u2signatureIndex)); + signatureAttribute.getSignature(clazz)); } @@ -358,7 +370,7 @@ implements ClassVisitor, { localVariableInfo.referencedClass = findReferencedClass(clazz.getName(), - clazz.getString(localVariableInfo.u2descriptorIndex)); + localVariableInfo.getDescriptor(clazz)); } @@ -368,7 +380,7 @@ implements ClassVisitor, { localVariableTypeInfo.referencedClasses = findReferencedClasses(clazz.getName(), - clazz.getString(localVariableTypeInfo.u2signatureIndex)); + localVariableTypeInfo.getSignature(clazz)); } @@ -378,7 +390,7 @@ implements ClassVisitor, { annotation.referencedClasses = findReferencedClasses(clazz.getName(), - clazz.getString(annotation.u2typeIndex)); + annotation.getType(clazz)); // Initialize the element values. annotation.elementValuesAccept(clazz, this); @@ -399,7 +411,7 @@ implements ClassVisitor, enumConstantElementValue.referencedClasses = findReferencedClasses(clazz.getName(), - clazz.getString(enumConstantElementValue.u2typeNameIndex)); + enumConstantElementValue.getTypeName(clazz)); } @@ -409,7 +421,7 @@ implements ClassVisitor, classElementValue.referencedClasses = findReferencedClasses(clazz.getName(), - clazz.getString(classElementValue.u2classInfoIndex)); + classElementValue.getClassName(clazz)); } @@ -443,7 +455,7 @@ implements ClassVisitor, { // See if we can find the method in the referenced class // (ignoring the descriptor). - String name = clazz.getString(elementValue.u2elementNameIndex); + String name = elementValue.getMethodName(clazz); Clazz referencedClass = annotation.referencedClasses[0]; elementValue.referencedClass = referencedClass; |