summaryrefslogtreecommitdiff
path: root/src/proguard/classfile/util/ClassReferenceInitializer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/proguard/classfile/util/ClassReferenceInitializer.java')
-rw-r--r--src/proguard/classfile/util/ClassReferenceInitializer.java38
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;