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