aboutsummaryrefslogtreecommitdiffstats
path: root/src/proguard/classfile/util/DynamicClassReferenceInitializer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/proguard/classfile/util/DynamicClassReferenceInitializer.java')
-rw-r--r--src/proguard/classfile/util/DynamicClassReferenceInitializer.java21
1 files changed, 7 insertions, 14 deletions
diff --git a/src/proguard/classfile/util/DynamicClassReferenceInitializer.java b/src/proguard/classfile/util/DynamicClassReferenceInitializer.java
index bdf2102..09ffdd0 100644
--- a/src/proguard/classfile/util/DynamicClassReferenceInitializer.java
+++ b/src/proguard/classfile/util/DynamicClassReferenceInitializer.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
@@ -301,8 +301,7 @@ implements InstructionVisitor,
{
// Save a reference to the corresponding class.
String externalClassName = stringConstant.getString(clazz);
- String internalClassName = ClassUtil.internalClassName(
- ClassUtil.externalBaseType(externalClassName));
+ String internalClassName = ClassUtil.internalClassName(externalClassName);
stringConstant.referencedClass = findClass(clazz.getName(), internalClassName);
}
@@ -351,7 +350,7 @@ implements InstructionVisitor,
return;
}
- String className = methodrefConstant.getClassName(clazz);
+ String className = methodrefConstant.getClassName(clazz);
// Note that we look for the class by name, since the referenced
// class has not been initialized yet.
@@ -435,17 +434,11 @@ implements InstructionVisitor,
*/
private Clazz findClass(String referencingClassName, String name)
{
- // Is it an array type?
- if (ClassUtil.isInternalArrayType(name))
+ // Ignore any primitive array types.
+ if (ClassUtil.isInternalArrayType(name) &&
+ !ClassUtil.isInternalClassType(name))
{
- // Ignore any primitive array types.
- if (!ClassUtil.isInternalClassType(name))
- {
- return null;
- }
-
- // Strip the array part.
- name = ClassUtil.internalClassNameFromClassType(name);
+ return null;
}
// First look for the class in the program class pool.