[jboss-cvs] javassist/src/main/javassist/compiler ...
Shigeru Chiba
chiba at is.titech.ac.jp
Thu May 1 06:47:59 EDT 2008
User: chiba
Date: 08/05/01 06:47:59
Modified: src/main/javassist/compiler MemberResolver.java
Log:
fixed JASSIST-47 and 60.
Revision Changes Path
1.16 +23 -8 javassist/src/main/javassist/compiler/MemberResolver.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: MemberResolver.java
===================================================================
RCS file: /cvsroot/jboss/javassist/src/main/javassist/compiler/MemberResolver.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- MemberResolver.java 4 Jun 2007 03:11:09 -0000 1.15
+++ MemberResolver.java 1 May 2008 10:47:59 -0000 1.16
@@ -129,7 +129,11 @@
else
onlyExact = maybe != null;
+ int mod = clazz.getModifiers();
+ boolean isIntf = Modifier.isInterface(mod);
try {
+ // skip searching java.lang.Object if clazz is an interface type.
+ if (!isIntf) {
CtClass pclazz = clazz.getSuperclass();
if (pclazz != null) {
Method r = lookupMethod(pclazz, methodName, argTypes,
@@ -138,10 +142,10 @@
return r;
}
}
+ }
catch (NotFoundException e) {}
- int mod = clazz.getModifiers();
- if (Modifier.isAbstract(mod) || Modifier.isInterface(mod))
+ if (isIntf || Modifier.isAbstract(mod))
try {
CtClass[] ifs = clazz.getInterfaces();
int size = ifs.length;
@@ -152,6 +156,17 @@
if (r != null)
return r;
}
+
+ if (isIntf) {
+ // finally search java.lang.Object.
+ CtClass pclazz = clazz.getSuperclass();
+ if (pclazz != null) {
+ Method r = lookupMethod(pclazz, methodName, argTypes,
+ argDims, argClassNames, onlyExact);
+ if (r != null)
+ return r;
+ }
+ }
}
catch (NotFoundException e) {}
More information about the jboss-cvs-commits
mailing list